Try this patch.

On Sat, 7 Apr 2001, Justin Clift wrote:

> Hi all,
> 
> Just letting you know Solaris 8 SPARC (sun4m 32 bit) isn't able to
> compile openssl 0.9.6a beta3 when used with the 'shared' option.
> 
> Using gcc 2.95.3, Sun's ld, as, ar etc.
> 
> Configured for solaris-sparcv8-gcc, using './config
> --prefix=/opt/openssl threads shared'
> 
> It compiles fine when not using 'shared' however.
> 
> The output of make just before the error is :
> 
> gcc -o rsa_test -I../include -fPIC -DTHREADS -D_REENTRANT -DDSO_DLFCN
> -DHAVE_DLFCN_H -mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIA
> N -DBN_DIV2W rsa_test.o  -L.. -lcrypto -lsocket -lnsl -ldl
> make[1]: Leaving directory `/archive/install/openssl-0.9.6a-beta3/test'
> making all in tools...
> make[1]: Entering directory
> `/archive/install/openssl-0.9.6a-beta3/tools'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/archive/install/openssl-0.9.6a-beta3/tools'
> make[1]: Entering directory `/archive/install/openssl-0.9.6a-beta3'
> make[2]: Entering directory `/archive/install/openssl-0.9.6a-beta3'
> + rm -f libcrypto.so.0 
> + rm -f libcrypto.so 
> + rm -f libcrypto.so.0.9.6 
> libs='-L. '; for i in crypto; do \
> ( set -x; gcc  -shared -o lib$i.so.0.9.6 \
>         -Wl,-S,-soname=lib$i.so.0.9.6 \
>         -Wl,--whole-archive lib$i.a \
>         -Wl,--no-whole-archive $libs -lsocket -lnsl -ldl -lc ) || exit
> 1; \
> libs="$libs -l$i"; \
> done
> + gcc -shared -o libcrypto.so.0.9.6 -Wl,-S,-soname=libcrypto.so.0.9.6
> -Wl,--whole-archive libcrypto.a -Wl,--no-whole-archive -L. -
> lsocket -lnsl -ldl -lc 
> /usr/ccs/bin/ld: illegal option -- -
> /usr/ccs/bin/ld: illegal option -- w
> /usr/ccs/bin/ld: illegal option -- -
> /usr/ccs/bin/ld: illegal option -- n
> ld: warning: option -o appears more than once, first setting taken
> usage: ld [-6:abc:d:e:f:h:il:mo:p:rstu:z:B:D:F:GI:L:M:N:P:Q:R:S:VY:?]
> file(s)
>         [-64]           enforce a 64-bit link-edit
>         [-a]            create an absolute file
>         [-b]            do not do special PIC relocations in a.out
>         [-c file]       record configuration `file'
>         [-d y|n]        operate in dynamic|static mode
>         [-e sym]        use `sym' as entry point address
>         [-f name]       specify library for which this file is an
> auxiliary
>                         filter
>         [-h name]       use `name' as internal shared object identifier
>         [-i]            ignore LD_LIBRARY_PATH setting
>         [-l x]          search for libx.so or libx.a
>         [-m]            print memory map
>         [-o outfile]    name the output file `outfile'
>         [-p name]       identify audit object to accompany this object
>         [-r]            create a relocatable object
>         [-s]            strip any symbol and debugging information
>         [-t]            do not warn of multiply-defined symbols that
> have
>                         different sizes or alignments
>         [-u sym]        create an undefined symbol `sym'
>         [-z absexec]    when building an executable absolute symbols
>                         referenced in dynamic objects are promoted to
>                         the executable
>         [-z now]        mark object as requiring non-lazy binding
>         [-z defs|nodefs]
>                         disallow|allow undefined symbols
>         [-z endfiltee]  marks a filtee such that it will terminate a
> filters
>                         search
>         [-z groupperm|nogroupperm]
>                         enable|disable setting of group permissions
>                         on dynamic dependencies
>         [-z ignore|record]
>                         ignore|record unused dynamic dependencies
>         [-z initfirst]  mark object to indicate that its .init section
> should
>                         be executed before the .init section of any
> other
>                         objects
>         [-z loadfltr]   mark filter as requiring immediate loading of
> its
>                         filtees at runtime
>         [-z interpose]  dynamic object is to be an `interposer' on
>                         direct bindings
>         [-z lazyload|nolazyload]
>                         enable|disable delayed loading of shared objects
>         [-z muldefs]    allow multiply-defined symbols
>         [-z nodefaultlib]
>                         mark object to ignore any default library search
> path
>         [-z nodelete]   mark object as non-deletable
>         [-z nodlopen]   mark object as non-dlopen()'able
>         [-z nodump]     mark object as non-dldump()'able
>         [-z nopartial]  expand any partially initialized symbols
>         [-z noversion]  don't record any version sections
>         [-z origin]     mark object as requiring $ORIGIN processing
>         [-z redlocsym]  reduce local syms in .symtab to a minimum
>         [-z text]       disallow output relocations against text
>         [-z textwarn]   warn if there are relocations against text
>         [-z textoff]    allow output relocations against text
>         [-z verbose]    generate warnings for suspicious processings
>         [-z weakextract]
>                         allow extraction of archive members to resolve
> weak
>                         references
>         [-z allextract] extract all member files from archive files
>         [-z defaultextract]
>                         extract member files from archive files
>                         which resolve undefined or tentative symbols
>         [-z combreloc]  combine multiple relocation sections
>         [-B dynamic|static]
>                         search for shared libraries|archives
>         [-B group]      relocate object from within group
>         [-B eliminate]  eliminate unqualified global
>                         symbols from the symbol table
>         [-B local]      reduce unqualified global symbols to local
>         [-B reduce]     process symbol reductions
>         [-B symbolic]   bind external references to definitions when
> creating
>                         shared objects
>         [-B direct]     specify `direct' bindings for executable when
> run
>         [-D options]    print diagnostic messages
>         [-F name]       specify library for which this file is a filter
>         [-G]            create a shared object
>         [-I interp]     use `interp' as path name of interpreter
>         [-L path]       search for libraries in directory `path'
>         [-M mapfile]    use processing directives contained in `mapfile'
>         [-N file]       create a dynamic dependency on `file'
>         [-P name]       identify audit object for processing the
> dependencies
>                         of this object
>         [-Q y|n]        do|do not place version information in output
> file
>         [-R path]       specify a library search path to be used at run
> time
>         [-S name]       specify a link-edit support library
>         [-V]            print version information
>         [-Y P,dirlist]  use `dirlist' as a default path when searching
> for
>                         libraries
> collect2: ld returned 1 exit status
> make[2]: *** [do_gnu-shared] Error 1
> make[2]: Leaving directory `/archive/install/openssl-0.9.6a-beta3'
> make[1]: *** [libcrypto.so.0.9.6] Error 2
> make[1]: Leaving directory `/archive/install/openssl-0.9.6a-beta3'
> make: *** [sub_all] Error 2
> bash-2.03$
> 
> 
> Regards and best wishes,
> 
> Justin Clift
> 
> 

-- 
Tim Rice                                Multitalents    (707) 887-1469
[EMAIL PROTECTED]


--- Configure.old       Thu Apr  5 13:07:55 2001
+++ Configure   Sat Apr  7 11:31:06 2001
@@ -132,18 +132,18 @@
 # surrounds it with #APP #NO_APP comment pair which (at least Solaris
 # 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
 # error message.
-"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN 
-DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_sol_asm}:dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

+"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN 
+-DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} 
+${x86_gcc_opts}:${x86_sol_asm}:dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
 
 #### SPARC Solaris with GNU C setups
-"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR::::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

-"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
DES_UNROLL 
BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

+"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR::::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
+"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
+DES_UNROLL 
+BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
 # gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8
 # but keep the assembler modules.
-"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
DES_UNROLL 
BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

+"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
+DES_UNROLL 
+BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
 ####
-"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl 
-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

-"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket 
-lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

+"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
+-DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl 
+-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
+"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
+-DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket 
+-lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
 
 #### SPARC Solaris with Sun C setups
 # DO NOT use /xO[34] on sparc with SC3.0.  It is broken, and will not pass the tests

Reply via email to