4.3.0 beta3 compile problem on solaris 10 sparc
Hi,
I tried replying to this thread 3 times but it just disappears, trying a new mail with the same subject.
Thanx, That fixed the first problem.
Now I have the ld problem as described. How do I tell the compilation to use /usr/local/bin/ld? It seems embedded in the c-ares tar.gz file
I made a dirty fix by linking /usr/ccs/bin/ld to /usr/local/bin/ld. Then it compiles nicely.
- Roland
make[1]: Entering directory /var/tmp/xymon-4.3.0.beta3/xymongen' make[1]: Nothing to be done for all'.
make[1]: Leaving directory /var/tmp/xymon-4.3.0.beta3/xymongen' CC="gcc" CFLAGS="-g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I. -Ipwd/include -I/usr/local/include" LDFLAGS="" RPATHOPT="-Wl,--rpath,/opt/csw/lib -Wl,--rpath,/usr/local/lib" SSLFLAGS="" SSLINCDIR="" SSLLIBS="" LDAPFLAGS="" LDAPINCDIR="" LDAPLIBS="" DOSNMP="no" NETLIBS="-lresolv -lsocket -lnsl" XYMONHOME="/usr/local/xymon/server" ARESVER="1.7.3" RUNTIMEDEFS="" PCREINCDIR="-I/usr/local/include" PCRELIBS="-L/usr/local/lib -lpcre" LIBRTDEF="-lrt" make -C xymonnet all make[1]: Entering directory /var/tmp/xymon-4.3.0.beta3/xymonnet'
gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I.
-I/var/tmp/xymon-4.3.0.beta3/include -I/usr/local/include -o xymonnet
-Wl,--rpath,/opt/csw/lib -Wl,--rpath,/usr/local/lib xymonnet.o contest.o
httptest.o httpresult.o ldaptest.o dns.o dns2.o httpcookies.o
../lib/libxymon.a libcares.a -L/usr/local/lib -lpcre -lresolv -lsocket
-lnsl -lrt
/usr/ccs/bin/ld: illegal option -- rpath
/usr/ccs/bin/ld: illegal option -- rpath
usage: ld [-6:abc:d:e:f:h:il:mo:p:rstu:z:B:CD: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
[-B direct | nodirect]
establish direct bindings, or inhibit direct
binding
to, the object being created
[-B dynamic | static]
search for shared libraries|archives
[-B eliminate] eliminate unqualified global symbols from the
symbol table
[-B group] relocate object from within group
[-B local] reduce unqualified global symbols to local
[-B reduce] process symbol reductions
[-B symbolic] bind external references to definitions when
creating
shared objects
[-c name] record configuration file name' [-C] demangle C++ symbol name diagnostics [-d y | n] operate in dynamic|static mode [-D token,...] print diagnostic messages [-e epsym] use epsym' as entry point address
[-f name] specify library for which this file is an
auxiliary
filter
[-F name] specify library for which this file is a filter
[-G] create a shared object
[-h name] use name' as internal shared object identifier [-i] ignore LD_LIBRARY_PATH setting [-I name] use name' as path of interpreter
[-l x] search for libx.so or libx.a
[-L path] search for libraries in directory path' [-m] print memory map [-M mapfile] use processing directives contained in mapfile'
[-N string] create a dynamic dependency for string' [-o outfile] name the output file outfile'
[-p auditlib] identify audit library to accompany this object
[-P auditlib] identify audit library for processing the
dependencies
of this object
[-Q y | n] do|do not place version information in output file
[-r] create a relocatable object
[-R path] specify a library search path to be used at run
time
[-s] strip any symbol and debugging information
[-S supportlib]
specify a link-edit support library
[-t] do not warn of multiply-defined symbols that have
different sizes or alignments
[-u symname] create an undefined symbol symname' [-V] print version information [-Y P,dirlist] use dirlist' as a default path when searching for
libraries
[-z absexec] when building an executable absolute symbols
referenced in dynamic objects are promoted to
the executable
[-z allextract | defaultextract | weakextract]
extract all member files, only members that
resolve
undefined tor tentative symbols, or allow
extraction of
archive members to resolvetweak references from
archive files
[-z altexec64] execute the 64-bit link-editor
[-z combreloc] combine multiple relocation sections
[-z defs] disallow undefined symbol references
[-z direct | nodirect]
enable|disable direct binding to shared object
dependencies
[-z endfiltee] marks a filtee such that it will terminate a
filters
search
[-z finiarray=function]
name of function to be appended to the .finiarray
[-z groupperm | nogroupperm]
enable|disable setting of group permissions
on dynamic dependencies
[-z help ] print this usage message
[-z ignore | record]
ignore|record unused dynamic dependencies
[-z initarray=function]
name of function to be appended to the .initarray
[-z initfirst] mark object to indicate that its .init section
should
be executed before the .init section of any other
objects
[-z interpose] dynamic object is to be an interposer' on direct bindings [-z lazyload | nolazyload] enable|disable delayed loading of shared object dependencies [-z ld32=arg1,arg2,...] define arguments applicable to the 32-bit class of ld(1) [-z ld64=arg1,arg2,...] define arguments applicable to the 64-bit class of ld(1) [-z loadfltr] mark filter as requiring immediate loading of its filtees at runtime [-z muldefs] allow multiply-defined symbols [-z nocompstrtab] disable compression of string tables [-z nodefs] allow undefined symbol references [-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 now] mark object as requiring non-lazy binding [-z nopartial] expand any partially initialized symbols [-z noversion] don't record any version sections [-z origin] mark object as requiring $ORIGIN processing [-z preinitarray=function] name of function to be appended to the .preinitarray [-z redlocsym] reduce local syms in .symtab to a minimum [-z rescan] rescan archive list until no further member extraction occurs [-z text] disallow output relocations against text [-z textoff] allow output relocations against text [-z textwarn] warn if there are relocations against text [-z verbose] generate warnings for suspicious processings collect2: ld returned 1 exit status make[1]: *** [xymonnet] Error 1 make[1]: Leaving directory /var/tmp/xymon-4.3.0.beta3/xymonnet'
make: *** [xymonnet-build] Error 2
In <4CE4376C.909 at logicaltech.com.au> Roland Soderstrom <rolands at logicaltech.com.au> writes:
Now I have the ld problem as described. How do I tell the compilation to use /usr/local/bin/ld? It seems embedded in the c-ares tar.gz file
It's really a problem with the C-ARES configure-script. I think you can set the LD environment-variable to point to your preferred linker, so something like
LD=/usr/local/bin/ld export LD ./configure make
might solve it.
Regards, Henrik
In <4CE4376C.909 at logicaltech.com.au> Roland Soderstrom <rolands at logicaltech.com.au> writes:
make[1]: Entering directory `/var/tmp/xymon-4.3.0.beta3/xymonnet' gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -I/usr/local/include -o xymonnet -Wl,--rpath,/opt/csw/lib -Wl,--rpath,/usr/local/lib xymonnet.o contest.o httptest.o httpresult.o ldaptest.o dns.o dns2.o httpcookies.o ../lib/libxymon.a libcares.a -L/usr/local/lib -lpcre -lresolv -lsocket -lnsl -lrt /usr/ccs/bin/ld: illegal option -- rpath
I just now noticed that the problem probably isn't with C-ARES, but with the "--rpath" options that Xymon uses for the linker command.
If you look at the build/Makefile.SunOS file, you'll find the linker setup there. Xymon tries to figure out if you are using the GNU ld program:
LDTYPE := $(shell ld -V 2>&1|head -1|cut -d' ' -f1) ifeq ($(LDTYPE),GNU) RPATH=-Wl,--rpath, else RPATH=-Wl,-R endif
Try deleting those lines, and see if it helps.
Regards, Henrik
Hi,
That seems like a dirty fix, I relinked /usr/ccs/bin/ld which is as dirty. Wouldn't the proper solution be that if it could find the Gnu ld it will use it? In my case it is in the path but /usr/ccs/bin is not. Still /usr/ccs/bin/ld is found first and used. I tried setting LD= but it doesn't help. As in that statement: -bash-3.00$ ld -V 2>&1|head -1|cut -d' ' -f1 GNU -bash-3.00$ ld -V GNU ld version 2.15 Supported emulations: elf32_sparc elf64_sparc So Makefile.SunOS finds the Gnu linker, but later it is using /usr/ccs/bin/ld. Where? and Why?
Another problem: I'm trying to compile the client on Solaris 9 SPARC and get this error. gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -DCLIENTONLY=1 -I. -I../include -c -o misc.o misc.c In file included from /var/tmp/xymon-4.3.0.beta3/include/libxymon.h:56, from misc.c:34: /var/tmp/xymon-4.3.0.beta3/include/../lib/eventlog.h:38: error: syntax error before numeric constant make[1]: *** [misc.o] Error 1 make[1]: Leaving directory `/var/tmp/xymon-4.3.0.beta3/lib' make: *** [lib-client] Error 2
Next up is Solaris 10 x86, well see if that works.
- Roland
On 18/11/10 07:40 AM, Henrik Størner wrote:
In<4CE4376C.909 at logicaltech.com.au> Roland Soderstrom<rolands at logicaltech.com.au> writes:
make[1]: Entering directory `/var/tmp/xymon-4.3.0.beta3/xymonnet' gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -I/usr/local/include -o xymonnet -Wl,--rpath,/opt/csw/lib -Wl,--rpath,/usr/local/lib xymonnet.o contest.o httptest.o httpresult.o ldaptest.o dns.o dns2.o httpcookies.o ../lib/libxymon.a libcares.a -L/usr/local/lib -lpcre -lresolv -lsocket -lnsl -lrt /usr/ccs/bin/ld: illegal option -- rpath
I just now noticed that the problem probably isn't with C-ARES, but with the "--rpath" options that Xymon uses for the linker command.
If you look at the build/Makefile.SunOS file, you'll find the linker setup there. Xymon tries to figure out if you are using the GNU ld program:
LDTYPE := $(shell ld -V 2>&1|head -1|cut -d' ' -f1) ifeq ($(LDTYPE),GNU) RPATH=-Wl,--rpath, else RPATH=-Wl,-R endifTry deleting those lines, and see if it helps.
Regards, Henrik
To unsubscribe from the xymon list, send an e-mail to xymon-unsubscribe at xymon.com
Hi,
Here is the Solaris 10 x86 compile error:
gcc -o setup-newfiles -g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I.
-I/var/tmp/xymon-4.3.0.beta3/include -DCLIENTONLY=1 -Wl,-R
setup-newfiles.c ../lib/xymonclient.a -lresolv -lsocket -lnsl -lrt
Undefined first referenced
symbol in file
main
/usr/local/lib/gcc/i386-pc-solaris2.10/3.4.6/crt1.o
ld: fatal: Symbol referencing errors. No output written to setup-newfiles
collect2: ld returned 1 exit status
make[1]: *** [setup-newfiles] Error 1
make[1]: Leaving directory `/var/tmp/xymon-4.3.0.beta3/build'
make: *** [build-build] Error 2
- Roland
On 18/11/10 09:02 AM, Roland Soderstrom wrote:
Hi,
That seems like a dirty fix, I relinked /usr/ccs/bin/ld which is as dirty. Wouldn't the proper solution be that if it could find the Gnu ld it will use it? In my case it is in the path but /usr/ccs/bin is not. Still /usr/ccs/bin/ld is found first and used. I tried setting LD= but it doesn't help. As in that statement: -bash-3.00$ ld -V 2>&1|head -1|cut -d' ' -f1 GNU -bash-3.00$ ld -V GNU ld version 2.15 Supported emulations: elf32_sparc elf64_sparc So Makefile.SunOS finds the Gnu linker, but later it is using /usr/ccs/bin/ld. Where? and Why?
Another problem: I'm trying to compile the client on Solaris 9 SPARC and get this error. gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -DCLIENTONLY=1 -I. -I../include -c -o misc.o misc.c In file included from /var/tmp/xymon-4.3.0.beta3/include/libxymon.h:56, from misc.c:34: /var/tmp/xymon-4.3.0.beta3/include/../lib/eventlog.h:38: error: syntax error before numeric constant make[1]: *** [misc.o] Error 1 make[1]: Leaving directory `/var/tmp/xymon-4.3.0.beta3/lib' make: *** [lib-client] Error 2
Next up is Solaris 10 x86, well see if that works.
- Roland
On 18/11/10 07:40 AM, Henrik Størner wrote:
In<4CE4376C.909 at logicaltech.com.au> Roland Soderstrom<rolands at logicaltech.com.au> writes:
make[1]: Entering directory `/var/tmp/xymon-4.3.0.beta3/xymonnet' gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -I/usr/local/include -o xymonnet -Wl,--rpath,/opt/csw/lib -Wl,--rpath,/usr/local/lib xymonnet.o contest.o httptest.o httpresult.o ldaptest.o dns.o dns2.o httpcookies.o ../lib/libxymon.a libcares.a -L/usr/local/lib -lpcre -lresolv -lsocket -lnsl -lrt /usr/ccs/bin/ld: illegal option -- rpath I just now noticed that the problem probably isn't with C-ARES, but with the "--rpath" options that Xymon uses for the linker command.
If you look at the build/Makefile.SunOS file, you'll find the linker setup there. Xymon tries to figure out if you are using the GNU ld program:
LDTYPE := $(shell ld -V 2>&1|head -1|cut -d' ' -f1) ifeq ($(LDTYPE),GNU) RPATH=-Wl,--rpath, else RPATH=-Wl,-R endifTry deleting those lines, and see if it helps.
Regards, Henrik
To unsubscribe from the xymon list, send an e-mail to xymon-unsubscribe at xymon.com
To unsubscribe from the xymon list, send an e-mail to xymon-unsubscribe at xymon.com
Hi,
Solved that problem by using Gnu ld instead. However I had to do the same trick as in SPARC. linking /usr/ccs/bin/ld to /usr/local/bin/ld
So, only the Solaris 9 client compile problem left.
- Roland
On 18/11/10 09:48 AM, Roland Soderstrom wrote:
Hi,
Here is the Solaris 10 x86 compile error:
gcc -o setup-newfiles -g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -DCLIENTONLY=1 -Wl,-R setup-newfiles.c ../lib/xymonclient.a -lresolv -lsocket -lnsl -lrt Undefined first referenced symbol in file main
/usr/local/lib/gcc/i386-pc-solaris2.10/3.4.6/crt1.o ld: fatal: Symbol referencing errors. No output written to setup-newfiles collect2: ld returned 1 exit status make[1]: *** [setup-newfiles] Error 1 make[1]: Leaving directory `/var/tmp/xymon-4.3.0.beta3/build' make: *** [build-build] Error 2
- Roland
On 18/11/10 09:02 AM, Roland Soderstrom wrote:
Hi,
That seems like a dirty fix, I relinked /usr/ccs/bin/ld which is as dirty. Wouldn't the proper solution be that if it could find the Gnu ld it will use it? In my case it is in the path but /usr/ccs/bin is not. Still /usr/ccs/bin/ld is found first and used. I tried setting LD= but it doesn't help. As in that statement: -bash-3.00$ ld -V 2>&1|head -1|cut -d' ' -f1 GNU -bash-3.00$ ld -V GNU ld version 2.15 Supported emulations: elf32_sparc elf64_sparc So Makefile.SunOS finds the Gnu linker, but later it is using /usr/ccs/bin/ld. Where? and Why?
Another problem: I'm trying to compile the client on Solaris 9 SPARC and get this error. gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -DCLIENTONLY=1 -I. -I../include -c -o misc.o misc.c In file included from /var/tmp/xymon-4.3.0.beta3/include/libxymon.h:56, from misc.c:34: /var/tmp/xymon-4.3.0.beta3/include/../lib/eventlog.h:38: error: syntax error before numeric constant make[1]: *** [misc.o] Error 1 make[1]: Leaving directory `/var/tmp/xymon-4.3.0.beta3/lib' make: *** [lib-client] Error 2
Next up is Solaris 10 x86, well see if that works.
- Roland
On 18/11/10 07:40 AM, Henrik Størner wrote:
In<4CE4376C.909 at logicaltech.com.au> Roland Soderstrom<rolands at logicaltech.com.au> writes:
make[1]: Entering directory `/var/tmp/xymon-4.3.0.beta3/xymonnet' gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -I/usr/local/include -o xymonnet -Wl,--rpath,/opt/csw/lib -Wl,--rpath,/usr/local/lib xymonnet.o contest.o httptest.o httpresult.o ldaptest.o dns.o dns2.o httpcookies.o ../lib/libxymon.a libcares.a -L/usr/local/lib -lpcre -lresolv -lsocket -lnsl -lrt /usr/ccs/bin/ld: illegal option -- rpath I just now noticed that the problem probably isn't with C-ARES, but with the "--rpath" options that Xymon uses for the linker command.
If you look at the build/Makefile.SunOS file, you'll find the linker setup there. Xymon tries to figure out if you are using the GNU ld program:
LDTYPE := $(shell ld -V 2>&1|head -1|cut -d' ' -f1) ifeq ($(LDTYPE),GNU) RPATH=-Wl,--rpath, else RPATH=-Wl,-R endifTry deleting those lines, and see if it helps.
Regards, Henrik
To unsubscribe from the xymon list, send an e-mail to xymon-unsubscribe at xymon.com
To unsubscribe from the xymon list, send an e-mail to xymon-unsubscribe at xymon.com
To unsubscribe from the xymon list, send an e-mail to xymon-unsubscribe at xymon.com
In <4CE450D8.1050809 at logicaltech.com.au> Roland Soderstrom <rolands at logicaltech.com.au> writes:
So Makefile.SunOS finds the Gnu linker, but later it is using /usr/ccs/bin/ld. Where? and Why?
Most likely your compiler was built to search for the linker in /usr/ccs/bin before trying /usr/local/bin
Another problem: I'm trying to compile the client on Solaris 9 SPARC and get this error. gcc -g -O2 -Wall -Wno-unused -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DSunOS -I. -I/var/tmp/xymon-4.3.0.beta3/include -DCLIENTONLY=1 -I. -I../include -c -o misc.o misc.c In file included from /var/tmp/xymon-4.3.0.beta3/include/libxymon.h:56, from misc.c:34: /var/tmp/xymon-4.3.0.beta3/include/../lib/eventlog.h:38: error: syntax error before numeric constant
Yes, I've seen this on Solaris 8 also. Looking into it.
Regards, Henrik
participants (2)
-
henrik@hswn.dk
-
rolands@logicaltech.com.au