Solaris 2.5 + root + gcc 2.7

lijowski@cosray2.wustl.edu
8 Jan 1999 19:52:45 -0000


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