Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#51388 closed defect (fixed)

gcc6 @6.1.0: FATAL:Symbol L58$pb already defined.

Reported by: udbraumann Owned by: mww@…
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: leopard powerpc Cc: ccorn, mojca (Mojca Miklavec), ryandesign (Ryan Schmidt), dstrubbe (David Strubbe), khepler, ballapete (Peter Dyballa)
Port: gcc6

Description

While trying to install gcc6 @6.1.0 I run into this fatal error:

:info:build libtool: compile:  /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc6/gcc6/work/build/./gcc/gcj -B/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin9/libjava/ -B/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc6/gcc6/work/build/./gcc/ -B/opt/local/ppc-apple-darwin9/bin/ -B/opt/local/ppc-apple-darwin9/lib/ -isystem /opt/local/ppc-apple-darwin9/include -isystem /opt/local/ppc-apple-darwin9/sys-include -fclasspath=-fbootclasspath=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc6/gcc6/work/gcc-6.1.0/libjava/classpath/lib --encoding=UTF-8 -Wno-deprecated -fbootstrap-classes -g -O2 -c -fsource-filename=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin9/libjava/classpath/lib/classes -MT java/lang.lo -MD -MP -MF java/lang.deps @java/lang.list  -fno-common -o java/.libs/lang.o
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc6/gcc6/work/.tmp/ccUF9vdq.s:17749:FATAL:Symbol L58$pb already defined.
:info:build make[3]: *** [java/lang.lo] Error 1

Any ideas how this particular symbol L58$pb could have been defined before?

Attachments (2)

main.log.gz (411.2 KB) - added by udbraumann 4 years ago.
main.log (23.8 MB) - added by ballapete (Peter Dyballa) 4 years ago.
main.log from build on PPC Tiger of gcc6 6.2.0

Change History (34)

Changed 4 years ago by udbraumann

Attachment: main.log.gz added

comment:1 Changed 4 years ago by mf2k (Frank Schima)

Cc: mww@… removed
Owner: changed from macports-tickets@… to mww@…

comment:2 Changed 4 years ago by ccorn

Same for me. MacOS X 10.5.8/PowerMac G5. Slightly different symbol and line number of the intermediate .s file, but same source file:

libtool: compile:  /opt/mp64/var/macports/build/_Users_adm_Public_Ports_lang_gcc6/gcc6/work/build/./gcc/gcj -B/opt/mp64/var/macports/build/_Users_adm_Public_Ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin9/ppc64/libjava/ -B/opt/mp64/var/macports/build/_Users_adm_Public_Ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin9/ppc64/libjava/ -B/opt/mp64/var/macports/build/_Users_adm_Public_Ports_lang_gcc6/gcc6/work/build/./gcc/ -B/opt/mp64/ppc-apple-darwin9/bin/ -B/opt/mp64/ppc-apple-darwin9/lib/ -isystem /opt/mp64/ppc-apple-darwin9/include -isystem /opt/mp64/ppc-apple-darwin9/sys-include -m64 -fclasspath= -fbootclasspath=/opt/mp64/var/macports/build/_Users_adm_Public_Ports_lang_gcc6/gcc6/work/gcc-6.1.0/libjava/classpath/lib --encoding=UTF-8 -Wno-deprecated -fbootstrap-classes -g -O2 -m64 -c -fsource-filename=/opt/mp64/var/macports/build/_Users_adm_Public_Ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin9/ppc64/libjava/classpath/lib/classes -MT java/lang.lo -MD -MP -MF java/lang.deps @java/lang.list  -fno-common -o java/.libs/lang.o
/var/tmp//ccPaS6zd.s:18573:FATAL:Symbol L52$pb already defined.
make[5]: *** [java/lang.lo] Error 1

comment:3 Changed 4 years ago by ccorn

GCC seems to be riddled with issues concerning already defined assembler symbols. Potentially related: Bugzilla 59949, 66343, 70570, 71137.

comment:4 Changed 4 years ago by ccorn

Cc: ccorn@… added

Cc Me!

comment:5 Changed 4 years ago by kenneth.f.cunningham@…

I fixed this on Tiger/PPC just now by editing the portfile to remove java from the installed languages and removing libgcj* from the installed distfiles. Then it installed just fine. I suspect this same fix would work on Leopard PPC as well.

Given everything said about the state of the java compiler in gcc, this seems no loss. It apparently hasn't been updated since about 2012.

Also, for whatever reason, gcc5 installs (including java) with no trouble, so that is still functional if gcj is really needed for something.

comment:6 Changed 4 years ago by ccorn

Om my MacOS X 10.5.8/PowerMac G5, the bug manifests when compiling the member function void java.lang.StringBuffer.ensureCapacity_unsynchronized(int) at the end of libjava/java/lang/StringBuffer.java.

This is a compiler bug, and I could not get around it by random rearrangement of member function implementations. So I deactivated Java too.

That issue may change with upstream upgrades, so I'd try to sit it out before proposing any permanent workaround on the MacPorts side.

comment:7 Changed 4 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

comment:8 Changed 4 years ago by mojca (Mojca Miklavec)

Here are logs from the buildbot.

comment:9 Changed 4 years ago by ryandesign (Ryan Schmidt)

We should do some more research in the upstream bug tracker and if necessary file a bug for this problem specifically. Some of the previously referenced upstream tickets are years old and for older versions of gcc that build fine which makes me think they're not related.

comment:10 Changed 4 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added
Keywords: leopard powerpc added
Summary: gcc6 @6.1.0 fails building on 10.5.8. PPCgcc6 @6.1.0: FATAL:Symbol L58$pb already defined.

gcc 6.2.0 has been released. I'll update the port soon and we'll see if that fixes the build on Leopard PowerPC.

comment:11 Changed 4 years ago by dstrubbe (David Strubbe)

Cc: dstrubbe@… added

Cc Me!

comment:12 Changed 4 years ago by khepler

Cc: khepler@… added

Cc Me!

comment:13 in reply to:  10 ; Changed 4 years ago by ballapete (Peter Dyballa)

Replying to ryandesign@…:

gcc 6.2.0 has been released. I'll update the port soon and we'll see if that fixes the build on Leopard PowerPC.

Port decided to build gcc6 6.2.0 because it is listed as a dependency of py27-numpy. And its build fails on PPC Tiger here:

/bin/sh ./libtool --tag=GCJ   --mode=compile /opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/./gcc/gcj -B/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin8/libjava/ -B/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/./gcc/ -B/opt/local/ppc-apple-darwin8/bin/ -B/opt/local/ppc-apple-darwin8/lib/ -isystem /opt/local/ppc-apple-darwin8/include -isystem /opt/local/ppc-apple-darwin8/sys-include    -fclasspath= -fbootclasspath=/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/gcc-6.2.0/libjava/classpath/lib --encoding=UTF-8 -Wno-deprecated -fbootstrap-classes -g -O2  -c -o java/lang.lo -fsource-filename=/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin8/libjava/classpath/lib/classes -MT java/lang.lo -MD -MP -MF java/lang.deps @java/lang.list
libtool: compile:  /opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/./gcc/gcj -B/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin8/libjava/ -B/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/./gcc/ -B/opt/local/ppc-apple-darwin8/bin/ -B/opt/local/ppc-apple-darwin8/lib/ -isystem /opt/local/ppc-apple-darwin8/include -isystem /opt/local/ppc-apple-darwin8/sys-include -fclasspath= -fbootclasspath=/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/gcc-6.2.0/libjava/classpath/lib --encoding=UTF-8 -Wno-deprecated -fbootstrap-classes -g -O2 -c -fsource-filename=/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin8/libjava/classpath/lib/classes -MT java/lang.lo -MD -MP -MF java/lang.deps @java/lang.list  -fno-common -o java/.libs/lang.o
/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/.tmp/ccxXIwjU.s:18753:FATAL:Symbol L58$pb already defined.
make[3]: *** [java/lang.lo] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin8/libjava'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build/ppc-apple-darwin8/libjava'
make[1]: *** [all-target-libjava] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_lang_gcc6/gcc6/work/build'
make: *** [bootstrap-lean] Error 2

Changed 4 years ago by ballapete (Peter Dyballa)

Attachment: main.log added

main.log from build on PPC Tiger of gcc6 6.2.0

comment:14 Changed 4 years ago by ballapete (Peter Dyballa)

Cc: Peter_Dyballa@… added

Cc Me!

comment:15 in reply to:  13 ; Changed 4 years ago by ryandesign (Ryan Schmidt)

Replying to Peter_Dyballa@…:

Replying to ryandesign@…:

gcc 6.2.0 has been released. I'll update the port soon and we'll see if that fixes the build on Leopard PowerPC.

Port decided to build gcc6 6.2.0 because it is listed as a dependency of py27-numpy. And its build fails on PPC Tiger here:

Ok, so 6.2.0 did not resolve the FATAL:Symbol L58$pb already defined error.

The error is occurring in the java directory. Java support was recently completely removed from gcc7, I think due to a long history of problems they finally admitted they don't have the expertise to fix. Ken mentioned above that the build succeeds on PowerPC when Java support is removed. We could start by removing Java support only for PowerPC builds, and maybe with the next version update of gcc6 we can remove it for all platforms.

comment:16 in reply to:  15 Changed 4 years ago by udbraumann

Replying to ryandesign@…:

... We could start by removing Java support only for PowerPC builds, and maybe with the next version update of gcc6 we can remove it for all platforms.

Yes, this sounds reasonable, though nothing is known about the user figures utilizing Java support so far.

comment:17 Changed 4 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: newclosed

Nobody can be using it, since it doesn't work anyway. See #22066.

It's simpler to just remove it for all architectures now. Done in r153884, though it will take some days before the leopard-ppc-legacy builder gets around to building it since there is still a large backlog of builds.

comment:18 Changed 4 years ago by mojca (Mojca Miklavec)

Ryan, is it perhaps possible to remove the failcache just for gcc6 on 10.5? This is a blind suggestion, but I assume that one of the other ports might actually build it in the process instead of failing due to presumably broken dependency. Or is that already taken care of in cases like this one?

comment:19 Changed 4 years ago by ryandesign (Ryan Schmidt)

The failcache entry for a port automatically clears itself if the portfile or its files change.

comment:20 Changed 4 years ago by mojca (Mojca Miklavec)

Perfect, the build succeeded, thanks a lot.

comment:21 Changed 4 years ago by ballapete (Peter Dyballa)

On Friday I removed the Java target in Portfile. Some hours ago the build succeeded…

comment:22 in reply to:  21 ; Changed 4 years ago by udbraumann

Replying to Peter_Dyballa@…:

On Friday I removed the Java target in Portfile. Some hours ago the build succeeded…

Could you simply use Leopard's standard compiler (gcc4.2 from Xcode 3.1.4, PPC), or did you take MacPorts' gcc5? For me, apparently only the latter works (just compiling), as otherwise after a minute or so of the building process, it stopped telling that the compiler cannot generate binaries, though the configuration before was successful. Unfortunately I did not keep a copy of this attempt, so I cannot tell more at the moment.

comment:23 in reply to:  22 ; Changed 4 years ago by ballapete (Peter Dyballa)

Replying to braumann@…:

Replying to Peter_Dyballa@…:

On Friday I removed the Java target in Portfile. Some hours ago the build succeeded…

Could you simply use Leopard's standard compiler (gcc4.2 from Xcode 3.1.4, PPC), or did you take MacPorts' gcc5?

I did not change more in Portfile than remove ,java from the set of --enable-languages=, so it must have been the standard compiler, presumingly GCC 4.2. I also have no records saved…

comment:24 in reply to:  22 Changed 4 years ago by ballapete (Peter Dyballa)

Replying to braumann@…:

And it was on PPC Tiger! PPC Leopard will follow some time, and I shall observe which compiler will be used!

comment:25 in reply to:  22 Changed 4 years ago by ballapete (Peter Dyballa)

Replying to braumann@…:

It's too late – Portfile is already updated and does not contain the java taget!

comment:26 in reply to:  23 ; Changed 4 years ago by udbraumann

Replying to Peter_Dyballa@…:

I did not change more in Portfile than remove ,java from the set of --enable-languages=, so it must have been the standard compiler, presumingly GCC 4.2. I also have no records saved…

Please forget my complaint, I made another attempt without specifying the compiler (after several clean calls), now building of gcc6 @6.2.0 is running since an hour on my PowerBook G4 (10.5.8), and I presently do not expect some further interruption.

BTW, from comment 20 above I got the impression that some binary build for PPC had been compiled by the buildbot, so I tried to call

$ sudo port -b install gcc6

but there was no gcc6-6.2.0_0.darwin_9.ppc.tbz2 on any of the servers.

comment:27 in reply to:  26 ; Changed 4 years ago by ryandesign (Ryan Schmidt)

Correct, gcc6-6.2.0_0.darwin_9.ppc.tbz2 is not on any server because it does not exist because it could not build on PowerPC because it was trying to build with Java support. The fixed version, gcc6-6.2.0_1.darwin_9.ppc.tbz2, which does not try to build with Java support, does build on PowerPC, and the packages are on the servers. Run sudo port selfupdate to get this version of the Portfile, then try again.

comment:28 in reply to:  27 Changed 4 years ago by udbraumann

Replying to ryandesign@…:

...

sudo port selfupdate` to get this version of the Portfile, then try again.

Oh my god, sorry for the confusion, apparently I called the selfupdate too early yesterday.

comment:29 Changed 4 years ago by ballapete (Peter Dyballa)

There is one problem with this solution, leaving out the build of gcj:

root 321 /\ port select --set gcc mp-gcc6
Selecting 'mp-gcc6' for 'gcc' failed: could not create new link "/opt/local/bin/gcj": target "/opt/local/bin/gcj-mp-6" doesn't exist

comment:30 in reply to:  29 ; Changed 4 years ago by larryv (Lawrence Velázquez)

comment:31 in reply to:  30 Changed 4 years ago by ballapete (Peter Dyballa)

Replying to larryv@…:

r154063

A minimal update for MacPorts, two days of waiting for the user…

comment:32 Changed 4 years ago by ryandesign (Ryan Schmidt)

Yeah given the rebuild time I would have waited to make this change with the next version. But it's done now.

Note: See TracTickets for help on using tickets.