Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#59019 closed defect (duplicate)

ld64-97 appears to be opportunistically linked to the openssl port on PPC Mac OS X, Tiger

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.5.4
Keywords: tiger Cc: Schamschula (Marius Schamschula)
Port: ld64 ld64-97

Description

When I try to upgrade any port that is built with GCC 4.2 config.log will contain something like this:

configure:3992: /opt/local/bin/gcc-apple-4.2 -pipe -Os -arch ppc -I/opt/local/include -I/opt/local/include/db48 -L/opt/local/lib -Wl,-headerpad_max_install_names -L/opt/local/lib/db48 -arch ppc conftest.c  >&5
collect2: ld terminated with signal 5 [Trace/BPT trap], core dumped
dyld: Library not loaded: /opt/local/lib/libcrypto.1.0.0.dylib
  Referenced from: /opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld
  Reason: image not found

The reason is here:

root 332 /\ otool -L /opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld
/opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld:
	/opt/local/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.12)
root 333 /\ l /opt/local/lib/libcrypto.1.0.0.dylib
ls: /opt/local/lib/libcrypto.1.0.0.dylib: No such file or directory
root 334 /\ l /opt/local/lib/libcrypto*
-rwxr-xr-x   1 root  admin  2088872 11 Sep 13:49 /opt/local/lib/libcrypto.1.1.dylib
-rw-r--r--   1 root  admin  4074080 11 Sep 13:49 /opt/local/lib/libcrypto.a
lrwxr-xr-x   1 root  admin       19 11 Sep 14:22 /opt/local/lib/libcrypto.dylib -> libcrypto.1.1.dylib

No /opt/local/lib/libcrypto.1.0.0.dylib.

I created a sym-link /opt/local/lib/libcrypto.1.0.0.dylib pointing to /opt/local/lib/libcrypto.1.1.dylib. /opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld seems to work until now …

Change History (6)

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

Cc: mps@… removed
Owner: set to Schamschula
Status: newassigned

comment:2 Changed 5 years ago by kencu (Ken)

Port: openssl added; libgcrypt removed

/opt/local/lib/libcrypto.1.0.0.dylib is part of openssl. As you are well aware, openssl was just updated.

Not many people use Tiger, so nobody noticed that updating openssl would break the compiler.

It's kind of a miracle that the openssl 1.1.1 library works -- it's just luck that it does, because it is binary incompatible with openssl 1.0.x.

Something needs a revbump -- either ld64-97 or perhaps apple-gcc-4.2. I'm not sure which one yet, as I haven't tried updating Tiger until all this openssl 1.1.1 dust settles, and we identify better all the broken ports. Updating Tiger is a project that I don't want to spend weeks on.

If updating openssl broke the functional compilers on Tiger, that will be a fun project :> Have to re-bootstrap them...

I guess you are already into it -- unfortunately. You could reactivate an older version of openssl, I guess, but then that would be a mess for everything else that has gone on.

comment:3 Changed 5 years ago by jmroot (Joshua Root)

Cc: Schamschula added
Owner: changed from Schamschula to jeremyhu
Port: ld64 ld64-97 added; openssl removed
Summary: libgcrypt @1.8.5 fails to install a sym-link for apple-gcc42 on PPC Mac OS X, Tigerld64-97 appears to be opportunistically linked to the openssl port on PPC Mac OS X, Tiger

/opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld is a symlink to ../../../../../bin/ld aka /opt/local/bin/ld, so yeah, not a gcc issue. Please confirm that that is the case on your system, and show port provides result on that file, as well as port installed ld64 ld64-97.

comment:4 Changed 5 years ago by jmroot (Joshua Root)

Resolution: duplicate
Status: assignedclosed

So uh, yeah, I thought this sounded familiar somehow. :)

Dupe of #57016.

comment:5 Changed 5 years ago by kencu (Ken)

In 1a5d1eb48cd0a4a7e571e14195a6cc9c5cf44cf2/macports-ports (master):

ld64-97: prevent opportunistic linking to openssl

fully specify the path to the system libcrypto
prevents ld64-97 breakage when openssl changes ABI
closes: #57016
see: #59019

comment:6 in reply to:  3 Changed 5 years ago by ballapete (Peter "Pete" Dyballa)

Replying to jmroot:

/opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld is a symlink to ../../../../../bin/ld aka /opt/local/bin/ld, so yeah, not a gcc issue. Please confirm that that is the case on your system, and show port provides result on that file, as well as port installed ld64 ld64-97.

Yes, /opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld points to ../../../../../bin/ld, which is /opt/local/bin/ld (same inode) which is a sym-link to /opt/local/bin/ld-97.

pete 245 /\ port provides /opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld /opt/local/bin/ld-97
/opt/local/libexec/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.4/ld is provided by: apple-gcc42
/opt/local/bin/ld-97 is provided by: ld64-97
pete 246 /\ port installed ld64 ld64-97
The following ports are currently installed:
  ld64 @3_1+ld64_97 (active)
  ld64-97 @97.17_8 (active)

ld64-97 is listed as outdated today.

Last edited 5 years ago by ballapete (Peter "Pete" Dyballa) (previous) (diff)
Note: See TracTickets for help on using tickets.