#63699 closed defect (fixed)
openldap-devel @2.6.0: build fails on 10.5 PPC
Reported by: | mascguy (Christopher Nielsen) | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | ppc | Cc: | evanmiller (Evan Miller), ballapete (Peter "Pete" Dyballa) |
Port: | openldap-devel |
Description
To proactively support our 10.4 and 10.5 users, I quickly tested an install of this new port on 10.5 PPC.
Since this version of OpenLDAP is fresh off the release train - and required tweaking of several patches - there's a reasonable chance that this may be easy to fix.
Will attach the build log, and investigate further, as time allows.
Attachments (1)
Change History (21)
Changed 3 years ago by mascguy (Christopher Nielsen)
Attachment: | openldap-devel-10.5-ppc-failure.log.xz added |
---|
comment:1 Changed 3 years ago by mascguy (Christopher Nielsen)
comment:2 follow-up: 3 Changed 3 years ago by evanmiller (Evan Miller)
Some redefinition errors are fixed with newer compilers / C standards, maybe give that a try first.
comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)
Replying to evanmiller:
Some redefinition errors are fixed with newer compilers / C standards, maybe give that a try first.
Great point! I was hoping to keep the supported compiler list as broad as possible, to avoid a dependency on GCC 7. (As Ken and others have pointed out, though, a tremendous number of ports require something more modern than apple-gcc-4.2
. So perhaps there's no getting around this.)
Still need to dig some more, though. And additional thoughts/ideas welcome, as always!
comment:4 Changed 3 years ago by mascguy (Christopher Nielsen)
As an update, I'm in the process of installing gcc7
on 10.5 PPC.
I was hoping to avoid it, given that it'll take an eternity to build from source. But since it's needed for this case anyway - and will support future efforts (as well as allow installation of many other ports) - finally doing it.
So far, the build has been running for nearly 18 hours, just to build libgcc7
. And it died after 16 hours, with a segfault. But resumed, and so far, it's continuing successfully. So hoping that was just a fluke.
The machine itself is maxed out with RAM - 2gb - so no issues there. Keep your fingers crossed for me! LOL
comment:5 Changed 3 years ago by evanmiller (Evan Miller)
Likely the redefinition is a bug in the source that can be hacked around.... It should show up as a warning with -Wpedantic
using later compilers. We recently worked through a similar issue with lighttpd.
Good luck with the GCC7 build! It's a pain to compile (think it took 3 days on my G3 with 1 GB?) but opens up a lot of ports.
comment:6 Changed 3 years ago by mascguy (Christopher Nielsen)
Good News: The build for libgcc7
completed successfully earlier today, and gcc7
installed via a pre-built MacPorts binary. So not too bad at all!
comment:7 follow-ups: 8 10 Changed 3 years ago by evanmiller (Evan Miller)
openldap-devel
builds OK here with GCC7.
I'm having trouble testing with intermediate versions though, for reasons described here: https://trac.macports.org/ticket/63723
comment:8 Changed 3 years ago by mascguy (Christopher Nielsen)
Replying to evanmiller:
openldap-devel
builds OK here with GCC7.I'm having trouble testing with intermediate versions though, for reasons described here: https://trac.macports.org/ticket/63723
Is there value in trying to support GCC versions prior to 7, for this particular case? I don't have enough understanding of the implications on 10.4/10.5, so more insight would be great!
As for selecting GCC 7 for those specific platforms, is there a preferred portfile recipe?
comment:9 Changed 3 years ago by evanmiller (Evan Miller)
Well, I'm hoping to figure out which GCC versions choke on the redefinitions. Then we can write a blacklist as narrow as possible so that we don't necessarily have to require GCC7, just blacklist whatever won't compile openldap-devel.
Usually the blacklists take the form *gcc-3.* *gcc-4.*
but I'd like to figure out if GCC5/6 are okay, and likewise if GCC 4.5, 4.6, etc should be allowed.
comment:10 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)
Replying to evanmiller:
I'm having trouble testing with intermediate versions though, for reasons described here: https://trac.macports.org/ticket/63723
I wouldn't care. For reasons I do not understand GCC5
based libgcc
exists, used by more than 30 ports (on my Tiger). libgcc6
also exists, used by five ports, of which three are also depending on libgcc
. I think GCC5
and GCC6
are not used any more to build packages, so why care for them? OTOH, -arch
seems to be a switch passed to as
. At least on PPC Tiger, which is available for me right now, -arch
is not a genuine compiler option (from »gcc-version« -v --help
. If it gets removed from configure
then this will help also (almost) up-to-date compilers, like GCC7
.
comment:11 Changed 3 years ago by evanmiller (Evan Miller)
I think GCC5 and GCC6 are not used any more to build packages, so why care for them?
When I'm modifying various port blacklists, I'd like to be able to tell the maintainers that I tested X, Y, and Z versions.
I've seen this -arch
issue with several ports now – which seems to be evidence that these compilers are rarely used in practice.
comment:12 Changed 3 years ago by kencu (Ken)
Gently, boys, gently... this has all been working just perfectly for many years now. All this "-arch" stuff has been properly sorted out a long time ago:
So before you start totally redoing everything to suit your current understandings, please make sure you know what has already been done before you.
Individual ports might screw up and throw arch flags in on their own, blah, blah, blah, but the basics are all there and 20,000+ ports have been building up to now with a properly working setup.
Careful...
comment:13 Changed 3 years ago by kencu (Ken)
As above, base is under the impression that gcc-4.7+ support the "-arch" flag.
That is sort of true, if you only consider -arch i386
and -arch x86_64
, support for which came in here:
<https://github.com/gcc-mirror/gcc/commit/bd837408eeb0bd05b4b2621983f79bb7da8d253c>
in gcc-4.7.
However, the support for -arch ppc
and -arch ppc64
was not added by Iain until gcc-6.
The commit that brought it in is here:
<https://github.com/gcc-mirror/gcc/commit/37341412a50d7389802039e1890df3dca717b9db>
So -- the code in base should be updated to indicate that only gcc-6+ FULLY support the -arch
flags.
comment:14 Changed 3 years ago by evanmiller (Evan Miller)
Thanks, Ken! That clarifies the situation here.
comment:15 follow-up: 16 Changed 3 years ago by barracuda156
openlpad
@2.6.1 fails on 10.6.8 Rosetta using gcc-4.2
:
Entering subdirectory liblutil make[2]: Entering directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_databases_openldap/openldap/work/openldap-2.6.1/libraries/liblutil' rm -f version.c ../../build/mkversion -v "2.6.1" liblutil.a > version.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o base64.o base64.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o entropy.o entropy.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o sasl.o sasl.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o signal.o signal.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o hash.o hash.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o passfile.o passfile.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o md5.o md5.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o passwd.o passwd.c /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o sha1.o sha1.c In file included from ../../include/lutil.h:21, from passwd.c:60: ../../include/ac/socket.h:247: error: redefinition of typedef ‘Sockaddr’ ../../include/ldap_pvt.h:188: error: previous declaration of ‘Sockaddr’ was here /usr/bin/gcc-4.2 -pipe -Os -arch ppc -I../../include -I../../include -I/opt/local/include -I/opt/local/include/db48 -I/opt/local/include/openssl -DBIND_8_COMPAT -DMDB_FDATASYNC=fsync -c -o getpass.o getpass.c make[2]: *** [passwd.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_databases_openldap/openldap/work/openldap-2.6.1/libraries/liblutil' make[1]: *** [all-common] Error 1
comment:16 follow-ups: 17 18 20 Changed 2 years ago by mascguy (Christopher Nielsen)
Replying to barracuda156:
openlpad
@2.6.1 fails on 10.6.8 Rosetta usinggcc-4.2
The port was just updated to 2.6.2, and should be available within the next hour or two. Can you retry your build?
comment:17 Changed 2 years ago by ballapete (Peter "Pete" Dyballa)
Replying to mascguy:
The port was just updated to 2.6.2, and should be available within the next hour or two. Can you retry your build?
Next week probably. Right now I am working on Tiger, upgrading from Python 3.8 to 3.9, for which some packages are getting rebuilt. Tomorrow the sun will shine and I'll be on a discovery tour for (German) Wikipedia in the woods at some creeks… (it's kind of a jungle there)
comment:18 follow-up: 19 Changed 2 years ago by evanmiller (Evan Miller)
Replying to mascguy:
Replying to barracuda156:
openlpad
@2.6.1 fails on 10.6.8 Rosetta usinggcc-4.2
The port was just updated to 2.6.2, and should be available within the next hour or two. Can you retry your build?
2.6.2 builds fine here on Tiger/PPC.
comment:19 Changed 2 years ago by mascguy (Christopher Nielsen)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:20 Changed 2 years ago by ballapete (Peter "Pete" Dyballa)
It built here on PPC Leopard OK (did not try on PPC Tiger since it was reported that it builds).
The failure is - drumroll, please - Socket-related: