Re: Solaris 2.5 + root + gcc 2.7

lijowski@cosray2.wustl.edu
11 Jan 1999 18:14:49 -0000


This is a loader I have been using.
ld: Software Generation Utilities (SGU) SunOS/ELF (LK-2.0 (S/I) - versioning).

>From your answer I deduce that I should rather force loader to link
root with libg++ than libstdc++. Both of those libraries are located
in /usr/local/lib/ directory on our server.

Thanks and regards,

Michal Lijowski

> From buskulic@lappa.in2p3.fr Sat Jan 09 09:48:24 1999
> Delivered-To: lijowski@cosray2.wustl.edu
> Date: Sat, 9 Jan 1999 10:52:08 +0100 (MET)
> From: Damir Buskulic <buskulic@lappa.in2p3.fr>
> To: lijowski@cosray2.wustl.edu
> cc: roottalk@hpsalo.cern.ch
> Subject: Re: Solaris 2.5 + root + gcc 2.7
> MIME-Version: 1.0
>
> I dont't understand what libstdc++ does with gcc 2.7.2.3. this one should
> use libg++ if I remember well. Are you sure that you're not mixing egcs
> loader with gcc 2.7 compiler ? I doubt this will work.
>
> Cheers
>
> Damir
>
> =====================================================================
> | Damir Buskulic | Universite de Savoie/LAPP |
> | | Chemin de Bellevue, B.P. 110 |
> | Tel : +33 (0)450091600 | F-74941 Annecy-le-Vieux Cedex |
> | e-mail: buskulic@lapp.in2p3.fr | FRANCE |
> =====================================================================
> mailto:buskulic@lapp.in2p3.fr
>
> On 8 Jan 1999 lijowski@cosray2.wustl.edu wrote:
>
> >
> > I attempted to recompile the ROOT 2.20/06 source on Solaris 2.5 using
> > gcc 2.7.2.3 with no luck.
> >
> > Below is a Makefile, I have been using for this purpose.
> >
> > # Makefile of ROOT for Solaris with gcc
> >
> > PLATFORM = solaris
> >
> > CXX = g++
> > CC = gcc
> > CXXFLAGS = -fPIC -I/usr/openwin/include
> > CFLAGS = -fPIC -I/usr/openwin/include
> > CINTCXXFLAGS = -fPIC -DG__REGEXP1 -DG__UNIX -DG__OSFDLL \
> > -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO
> > CINTCFLAGS = -fPIC -DG__REGEXP1 -DG__UNIX -DG__OSFDLL \
> > -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO
> > OPT = -g
> > NOOPT =
> > LD = $(CXX)
> > LDFLAGS = $(OPT)
> > SOFLAGS = -shared
> > SOEXT = so
> > SYSLIBS = -lm -ldl
> > SYSXLIBS = -L/usr/openwin/lib -lX11 -lm -lgen -ldl -lsocket
> > XLIBS = $(ROOTSYS)/lib/libXpm.a -L/usr/openwin/lib -lX11 -lsunmath
> > CILIBS = -lm -ltermcap -ldl -L/usr/ccs/lib -lgen
> >
> >
> > ##### MACROS and TARGETS #####
> >
> > include Make-macros
> >
> >
> > ##### DEPENDENCIES #####
> >
> > include Make-depend
> >
> > The linking
> >
> > g++ -shared -g -o /data/cern/root/lib/libCint.so CINT_G__setup.o CINT_g__cfunc.o CINT_memtest.o CINT_sizeof.o CINT_auxu.o CINT_gcoll.o CINT_new.o CINT_stdstrct.o CINT_cast.o CINT_global1.o CINT_newlink.o CINT_struct.o CINT_debug.o CINT_global2.o CINT_newsos.o CINT_stub.o CINT_decl.o CINT_ifunc.o CINT_oldlink.o CINT_disp.o CINT_inherit.o CINT_opr.o CINT_tmplt.o CINT_init.o CINT_parse.o CINT_typedef.o CINT_dump.o CINT_input.o CINT_pause.o CINT_val2a.o CINT_end.o CINT_intrpt.o CINT_pcode.o CINT_value.o CINT_error.o CINT_loadfile.o CINT_pragma.o CINT_var.o CINT_expr.o CINT_quote.o CINT_fread.o CINT_macro.o CINT_scrupto.o CINT_func.o CINT_malloc.o CINT_shl.o CINT_Api.o CINT_Class.o CINT_Token.o CINT_Apiif.o CINT_DataMbr.o CINT_Type.o CINT_BaseCls.o CINT_Method.o CINT_Typedf.o CINT_CallFunc.o CINT_MethodAr.o CINT_libstrm.o
> >
> > produces a huge number of errors like this
> >
> > Text relocation remains referenced
> > against symbol offset in file
> > _IO_do_write 0x58 /usr/local/lib/libstdc++.a(fileops.o)
> > _IO_do_write 0x4b4 /usr/local/lib/libstdc++.a(stdiostream.o)
> > _IO_do_write 0x68c /usr/local/lib/libstdc++.a(fileops.o)
> > _IO_do_write 0x36c /usr/local/lib/libstdc++.a(stdiostream.o)
> > _IO_do_write 0xc5c /usr/local/lib/libstdc++.a(fileops.o)
> > _IO_do_write 0xe8 /usr/local/lib/libstdc++.a(filebuf.o)
> > _IO_do_write 0x5f8 /usr/local/lib/libstdc++.a(fileops.o)
> > _IO_do_write 0x100 /usr/local/lib/libstdc++.a(fileops.o)
> > _IO_do_write 0x64c /usr/local/lib/libstdc++.a(fileops.o)
> > _IO_do_write 0x5d0 /usr/local/lib/libstdc++.a(fileops.o)
> > _IO_file_fopen 0x264 /usr/local/lib/libstdc++.a(filebuf.o)
> > _IO_stdin_buf 0x20 /usr/local/lib/libstdc++.a(stdstreams.o)
> > _IO_stdin_buf 0x24 /usr/local/lib/libstdc++.a(stdstreams.o)
> > free 0x95c /usr/local/lib/libstdc++.a(genops.o)
> > free 0xef4 /usr/local/lib/libstdc++.a(genops.o)
> > free 0x568 /usr/local/lib/libstdc++.a(genops.o)
> > free 0x9a0 /usr/local/lib/libstdc++.a(genops.o)
> > free 0x1f8 /usr/local/lib/libstdc++.a(genops.o)
> > free 0x84 /usr/local/lib/libstdc++.a(floatconv.o)
> > free 0x2e4 /usr/local/lib/libstdc++.a(genops.o)
> > _vt.11fstreambase.3ios 0x10b8 /usr/local/lib/libstdc++.a(fstream.o)
> >
> > At the end there are following messages from stderr
> >
> > ld: fatal: relocations remain against allocatable but non-writable sections
> > chmod: /data/cern/root/lib/libCint.so: No such file or directory
> > ld: fatal: library -lCint: not found
> > ld: fatal: File processing errors. No output written to /data/cern/root/bin/cint
> > gmake: *** [/data/cern/root/bin/cint] Error 1
> >
> > I appreciate any hints.
> >
> > Michal Lijowski
> >
> >
> >
>
>