In message <[EMAIL PROTECTED]>
on Thu, Mar 06, 2003 at 12:15:43PM +0000, Joe Orton wrote:
> Yes, that's why it is needed - though I'm surprised if this problem is
> unique to the linker used on Linux.
[...]
> I'm fairly sure I've had problems on IRIX before when the linker picks
> up libraries with a different ABI.
Okay, thanks for the clarification.
The reason it might not have come up for me is that on systems I use,
the vendor's linker is used. On an UltraSPARC II test box with gcc using
Sun's ccs linker:
solaris$ gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.2.1/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as
--with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.2.1
solaris$ /usr/bin/echo '#include <stdio.h>\nint main(void) { printf("Hello
World!\\n"); }' > hello.c
solaris$ gcc -m32 -o hello32 hello.c
solaris$ gcc -m64 -o hello64 hello.c
solaris$ file hello32
hello32: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked (uses
shared libs), not stripped
solaris$ file hello64
hello64: ELF 64-bit MSB executable, SPARC V9, version 1 (SYSV), dynamically linked
(uses shared libs), not stripped
solaris$ LDPATH=-L/usr/lib\ -L/usr/lib/sparcv9 gcc -m64 -o hello64 hello.c
solaris$ ldd hello64
libc.so.1 => /usr/lib/sparcv9/libc.so.1
libdl.so.1 => /usr/lib/sparcv9/libdl.so.1
/usr/platform/SUNW,Ultra-5_10/lib/sparcv9/libc_psr.so.1
On an Itanium host:
hp-ux$ gcc -v
Reading specs from /usr/local/lib/gcc-lib/ia64-hp-hpux11.20/3.0/specs
Thread model: posix
gcc version 3.0
hp-ux$ gcc -o hello32 hello.c
hp-ux$ file hello32
hello32: ELF-32 executable object file - IA64
hp-ux$ ldd hello32
libc.so.1 => /lib/hpux32/libc.so.1
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
/opt/graphics/OpenGL/lib/hpux32/libogltls.so =>
/opt/graphics/OpenGL/lib/hpux32/libogltls.so
hp-ux$ LDPATH=/lib/hpux64\ /lib/hpux32 gcc -o hello32 hello.c
hp-ux$ ldd hello32
libc.so.1 => /lib/hpux32/libc.so.1
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
/opt/graphics/OpenGL/lib/hpux32/libogltls.so =>
/opt/graphics/OpenGL/lib/hpux32/libogltls.so
hp-ux$ cc +DD64 -o hello64 hello.c
hp-ux$ file hello64
hello64: ELF-64 executable object file - IA64
hp-ux$ ldd hello64
libc.so.1 => /usr/lib/hpux64/libc.so.1
libdl.so.1 => /usr/lib/hpux64/libdl.so.1
hp-ux$ LDPATH=/lib/hpux32\ /lib/hpux64 cc +DD64 -o hello64 hello.c
hp-ux$ file hello64
hello64: ELF-64 executable object file - IA64
hp-ux$ ldd hello64
libc.so.1 => /usr/lib/hpux64/libc.so.1
libdl.so.1 => /usr/lib/hpux64/libdl.so.1
(Acutally, I'm not sure that the last example attempted to do what I
wanted it to do.)
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php