"make" fails on my SPARC based Solaris8, the relevant part of the output is
shown below.
The basic problem is that ld as called by the gcc complains about illegal
options and a duplicated -o option.
My suspects are the --whole-archive and --no-whole-archive options to gcc,
but I don't know what should I do about them (if they are the real cause).
I'm also including the testlog as created by "make report"
Any help appreciated.
TIA,
Attila.
----------------------------------- "make" output (relevant part only):
make[1]: Entering directory
`/export/home/home/kikeres/apache-src/openssl-0.9.6b'
make[2]: Entering directory
`/export/home/home/kikeres/apache-src/openssl-0.9.6b'
+ 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
`/export/home/home/kikeres/apache-src/openssl-0.9.6b'
make[1]: *** [libcrypto.so.0.9.6] Error 2
make[1]: Leaving directory
`/export/home/home/kikeres/apache-src/openssl-0.9.6b'
make: *** [sub_all] Error 2
----------------------------------- testlog contents after running "make
report":
OpenSSL self-test report:
OpenSSL version: 0.9.6b
Last change: Change ssleay_rand_bytes (crypto/rand/md_rand.c)...
Options: no-rc5 no-idea -fPIC
shared --prefix=/export/home/home/apache/openssl --openssldir=/export/home/h
ome/a
pache/openssl
OS (uname): SunOS sun 5.8 Generic_108528-05 sun4u sparc SUNW,Ultra-250
OS (config): sun4u-whatever-solaris2
Target (default): solaris-sparcv9-gcc
Target: solaris-sparcv9-gcc
Compiler: gcc version 2.95.3 20010315 (release)
Test skipped.
smime.p7s