I'm trying to build 64-bit shared libraries for openssl-0.9.6 on Solaris 8, and am having a strange problem. It seems to build the static libraries just fine but when it tries to make .so libs from the .a libs, it comes up with a library with very few symbols in it that is much smaller than the .a lib. I'm using Sun Workshop Compiler v5.0 and have installed the necessary compiler patch. I have also attempted the linker patch (109147-06), but it didnt seem to make a difference. I have also attempted to build 32-bit libraries on the same machine and they works just fine. I also see the same problem under Solaris 7, so I don't think it's a patch-related problem. My feeling is that the ld flags are incorrect for 64-bit libs. Here's basically what I've done: $ cd openssl-0.9.6/ $ ./Configure shared solaris64-sparcv9-cc $ ./make It grinds away for a while and then it reaches the stage where it converts the .a lib to a .so and I get the following message: + cc -G -o libcrypto.so.0.9.6 -h libcrypto.so.0 -z allextract libcrypto.a -lsocket -lnsl -ldl -lc ld: warning: file libcrypto.a(cryptlib.o): wrong ELF class: ELFCLASS64 When I look in the directory, I see this: $ ls -l libcrypto* -rw-r--r-- 1 jtlayton sysadmin 2764204 Feb 26 13:31 libcrypto.a lrwxrwxrwx 1 jtlayton sysadmin 14 Feb 26 13:39 libcrypto.so -> libcrypto.so.0* lrwxrwxrwx 1 jtlayton sysadmin 18 Feb 26 13:39 libcrypto.so.0 -> libcrypto.so.0.9.6* -rwxr-xr-x 1 jtlayton sysadmin 3076 Feb 26 13:41 libcrypto.so.0.9.6* $ nm libcrypto.so.0.9.6 libcrypto.so.0.9.6: [Index] Value Size Type Bind Other Shndx Name [18] | 0| 0|SECT |LOCL |0 |17 | [2] | 148| 0|SECT |LOCL |0 |1 | [3] | 264| 0|SECT |LOCL |0 |2 | [4] | 488| 0|SECT |LOCL |0 |3 | [5] | 740| 0|SECT |LOCL |0 |4 | [6] | 788| 0|SECT |LOCL |0 |5 | [7] | 788| 0|SECT |LOCL |0 |6 | [8] | 868| 0|SECT |LOCL |0 |7 | [9] | 948| 0|SECT |LOCL |0 |8 | [10] | 952| 0|SECT |LOCL |0 |9 | [11] | 66492| 0|SECT |LOCL |0 |10 | [12] | 66496| 0|SECT |LOCL |0 |11 | [13] | 66648| 0|SECT |LOCL |0 |12 | [14] | 66688| 0|SECT |LOCL |0 |13 | [15] | 0| 0|SECT |LOCL |0 |14 | [16] | 0| 0|SECT |LOCL |0 |15 | [17] | 0| 0|SECT |LOCL |0 |16 | [36] | 66496| 0|OBJT |GLOB |0 |11 |_DYNAMIC [20] | 66688| 0|OBJT |LOCL |0 |13 |_END_ [33] | 66492| 0|OBJT |GLOB |0 |10 |_GLOBAL_OFFSET_TABLE_ [39] | 0| 0|OBJT |GLOB |0 |ABS |_PROCEDURE_LINKAGE_TABLE_ [19] | 0| 0|OBJT |LOCL |0 |1 |_START_ [41] | 0| 0|NOTY |WEAK |0 |UNDEF |__1cH__CimplKcplus_fini6F_v_ [38] | 0| 0|NOTY |WEAK |0 |UNDEF |__1cH__CimplKcplus_init6F_v_ [31] | 66688| 0|OBJT |GLOB |0 |12 |_edata [32] | 66688| 0|OBJT |GLOB |0 |13 |_end [35] | 956| 0|OBJT |GLOB |0 |9 |_etext [40] | 0| 0|NOTY |WEAK |0 |UNDEF |_ex_deregister [23] | 948| 0|NOTY |LOCL |0 |8 |_ex_range0 [28] | 948| 0|NOTY |LOCL |0 |8 |_ex_range1 [37] | 0| 0|NOTY |WEAK |0 |UNDEF |_ex_register [22] | 66664| 0|NOTY |LOCL |0 |12 |_ex_shared0 [27] | 66680| 0|NOTY |LOCL |0 |12 |_ex_shared1 [24] | 788| 0|NOTY |LOCL |0 |5 |_ex_text0 [29] | 788| 0|NOTY |LOCL |0 |5 |_ex_text1 [42] | 868| 80|FUNC |GLOB |0 |7 |_fini [34] | 788| 80|FUNC |GLOB |0 |6 |_init [30] | 952| 4|OBJT |GLOB |0 |9 |_lib_version [21] | 0| 0|FILE |LOCL |0 |ABS |crti.s [26] | 0| 0|FILE |LOCL |0 |ABS |crtn.s [1] | 0| 0|FILE |LOCL |0 |ABS |libcrypto.so.0.9.6 [25] | 0| 0|FILE |LOCL |0 |ABS |values-Xa.c It looks like almost none of the symbols from libcrypto.a make it into libcrypto.so. Perhaps the "wrong ELF class" message makes ld ignore that library? Does anyone have any idea what I'm doing wrong here? I suspect that the flags being passed to ld are incorrect, but I don't know what the correct ones should be. -- Jeff Layton [EMAIL PROTECTED] Pliant Systems (919) 405-4311 "If God dwells inside us, like some people say, I sure hope He likes enchiladas, because that's what He's getting!" -- Deep Thoughts by Jack Handey (Saturday Night Live - NBC) ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]