more problems with 2.20.04

Jonathan Hays (Jonathan.Hays@cern.ch)
Tue, 15 Dec 1998 18:01:54 +0100 (MET)


Hi again,

I have had a couple more problems getting this to compile...

first problem....

in file: UNIX_UnixSystem.cxx

UNIX_UnixSystem.cxx: In method `void TUnixSystem::IgnoreInterrupt(Bool_t =
kTRUE)':
UNIX_UnixSystem.cxx:399: assignment to `void (*)(int)' from `void (*)()'
UNIX_UnixSystem.cxx: In function `static void TUnixSystem::UnixSignal(enum
ESignals, void (*)(enum ESignals))':
UNIX_UnixSystem.cxx:1777: assignment to `void (*)(int)' from `void (*)()'
gmake: *** [UNIX_UnixSystem.o] Error 1

Looking at the source code I see an #ifdef as follows...

#if defined(R__SOLARIS) && !defined(R__I386) && !defined(__SunOS_5_6)
sigact.sa_handler = (void (*)())SIG_IGN;
#else
# if defined(__SunOS_5_6)
sigact.sa_handler = (void (*)(int))SIG_IGN;
# else
sigact.sa_handler = SIG_IGN;
# endif
#endif

There is a similar construct on the second line referenced in the error
message.

I assume simply adding an int in the appropriate place will fix this?
(I am compiling on a Solaris... SunOS 5.5 system)

Performing this change seems to remove the compiler error...

Second problem:

I get a multiply defined symbol error as follows:
ld: fatal: symbol `TTreeViewer::Streamer(TBuffer &)' is multiply defined:
(file GPAD_TreeViewer.o and file GPAD_G__GPad.o);
ld: fatal: File processing errors. No output written to
/afs/cern.ch/user/j/jhays/lepton/ROOT/ROOT_egcs/root/lib/libGpad.so

editing the LinkDef file for GPAD_G__GPad.h and adding a minus sign
to the line refering to TTreeViewer allows this to compile....

Are the fixes I used the correct way to deal with these two problems??

Cheers,

Jon.

=====================================================
Jonathan Hays

Studio 103 CERN - HC/EP
36 Rue De L'Athenee E27900
1206 Geneve 1211 Geneve 23
Suisse Suisse
+41 22 7671546
=====================================================