Re: new PC and gcc

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Thu Oct 11 2001 - 06:53:19 EDT

  • Next message: Hironori Ito: "Re: new PC and gcc"

    Hi Hiro, 
    
    On Wed, 10 Oct 2001 17:21:23 -0500 (CDT)
    Hironori Ito <hito@students.phsx.ukans.edu> wrote
    concerning "Re: new PC and gcc":
    > 	HELP!!!
    
    I'll try :-) 
     
    > 	Ok.  With all suggestions, I tried the following.
    > 
    > 1.  export CXX='g++ -V egcs-2.91.66'
    > 2.  export CC='gcc -V egcs-2.91.66'
    > 
    > Then, do the usual things to compile brat.  It failed because it
    > complains about header files.  Then, I tried
    > 
    > 1.  export CXX='g++ -V egcs-2.91.66 -I/usr/i386-glibc21-linux/include'  
    > 2.  export CC='g++ -V egcs-2.91.66 -I/usr/i386-glib21-linux/include'
    > 
    > Then, it failed again with the same message.  The following is the output
    > of the compilation.
    > 
    > 
    > make[2]: Entering directory `/home/hito/temp/brat/data/abc'
    > /bin/sh ../../libtool --mode=compile g++ -V egcs-2.91.66
    > -I/usr/i386-glibc21-linux/include
    > -DPACKAGE=\"brat\" -DVERSION=\"2.1.9\" -DONL_unix=1
    > -I. -I.   -I. -D_REENTRANT
    > -I/afs/rhic/opt/brahms/root/root_v3.01.06/include -I../../data/abc
    
    Argh! Do not use ROOT 3.01/06 - it has a serious bug that makes it
    unusable for us.  Find the appropiate mail on brahms-dev-l. 
    
    Also, do not use the ROOT installed in 
    
      /afs/rhic/opt/brahms/root/root_v3.01.06
    
    since it's not supported.  Use the one in 
    
      /afs/rhic/opt/brahms/[pro|new] 
    
    Just insert 
    
      /afs/rhic/opt/brahms/[pro|new]/bin 
    
    in your PATH environment variable. 
    
    > -I../../data/params 			  -I../../util
    > -I../../managers			  -I../../modules/abc		
    >           -I../../modules/util -DMAJOR=2 -DMINOR=1 -DREVISION=9    -g -O2
    > -c BrClonesArray.cxx
    > g++ -V egcs-2.91.66 -I/usr/i386-glibc21-linux/include
    > -DPACKAGE=\"brat\" -DVERSION=\"2.1.9\" -DONL_unix=1
    > -I. -I. -I. -D_REENTRANT -I/afs/rhic/opt/brahms/root/root_v3.01.06/include
    > -I../../data/abc -I../../data/params -I../../util -I../../managers
    > -I../../modules/abc -I../../modules/util -DMAJOR=2 -DMINOR=1 -DREVISION=9
    > -g -O2 -Wp,-MD,.deps/BrClonesArray.pp -c BrClonesArray.cxx  -fPIC -DPIC -o
    > BrClonesArray.lo
    > /usr/i386-glibc21-linux/include/bits/string2.h: In function `char *
    > __strcpy_small(char *, __uint16_t, __uint16_t, __uint32_t, __uint32_t,
    > size_t)':
    > In file included from /usr/i386-glibc21-linux/include/string.h:346,
    >                  from
    > /afs/rhic/opt/brahms/root/root_v3.01.06/include/Bytes.h:40,
    >                  from
    > /afs/rhic/opt/brahms/root/root_v3.01.06/include/TBuffer.h:28,
    >                  from
    > /afs/rhic/opt/brahms/root/root_v3.01.06/include/TObject.h:192,
    >                  from
    > /afs/rhic/opt/brahms/root/root_v3.01.06/include/TCollection.h:26,
    >                  from
    > /afs/rhic/opt/brahms/root/root_v3.01.06/include/TSeqCollection.h:26,
    >                  from
    > /afs/rhic/opt/brahms/root/root_v3.01.06/include/TObjArray.h:26,
    >                  from
    > /afs/rhic/opt/brahms/root/root_v3.01.06/include/TClonesArray.h:26,
    >                  from BrClonesArray.h:45,
    >                  from BrClonesArray.cxx:13:
    > /usr/i386-glibc21-linux/include/bits/string2.h:408: warning: ANSI C++
    > forbids implicit conversion from `void *' in initialization
    > /usr/i386-glibc21-linux/include/bits/string2.h:419: warning: ANSI C++
    > forbids using pointer of type `void *' in arithmetic
    > /usr/i386-glibc21-linux/include/bits/string2.h:419: warning: ANSI C++
    > forbids implicit conversion from `void *' in assignment
    > /usr/i386-glibc21-linux/include/bits/string2.h:427: warning: ANSI C++
    > forbids using pointer of type `void *' in arithmetic
    > /usr/i386-glibc21-linux/include/bits/string2.h:427: warning: ANSI C++
    > forbids implicit conversion from `void *' in assignment
    > /usr/i386-glibc21-linux/include/bits/string2.h:432: warning: ANSI C++
    > forbids using pointer of type `void *' in arithmetic
    
    This error I've not seen while compiling BRAT with ROOT 3.<xx>/<xx>
    using GCC 2.91.<xx>, GCC 2.95.2, nor 'GCC 2.96'. 
    
    Try tracking down the actual location where __strcpy_small is used.  
    
    Try taking BrClonesArray out of the compilation (Makefile.am) - this
    class should not be used anymore.  If it is, it should be replaced by
    either a TClonesArray or a proper nested class, a la BrMultRdo,
    BrTofRdo, and BrChkvRdo. 
    
    > Ok.  Then, I found the script called i386-glibc21-linux-env.sh in
    > /usr/i386-glibc21-linux/bin directory.  Therefore, I run this things, and
    > tried again.  It still failed with the same message.  (I tried some other
    > things, but the results are the same.)
    
    Are you using a SH like shell? Did you run it as 
    
      prompt% . /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
    
    or as 
    
      prompt% /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
    
    The former is the right way, since the later starts a sub-shell and
    does not modify the environment in the mother shell.  If you're
    running a CSH like shell, do in the prompt: 
    
      setenv LDEMULATION     elf_i386_glibc21
      setenv GCC_EXEC_PREFIX /usr/i386-glibc21-linux/lib/gcc-lib/
    
    You can also do directly in a SH like shell 
    
      export LDEMULATION=elf_i386_glibc21
      export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
    
    I'm not sure what you mean in the above.  Did you see the same
    messages - i.e., the ones above - when you compiled with 
    
         CXX='g++ -V egcs-2.91.66'
         CC='gcc -V egcs-2.91.66' 
    
    > Do someone have any idea to make it work???   I am tring at a new PC
    > called "concerto.hirg.bnl.gov".
    
    I can't get access to that machine.  Is it accesible from the outside
    of BNL? 
    
    Ok, I just did 
    
      prompt% rpm -qa | grep egcs 
      compat-egcs-6.2-1.1.2.14
      compat-egcs-g77-6.2-1.1.2.14
      compat-egcs-c++-6.2-1.1.2.14
      compat-egcs-objc-6.2-1.1.2.14
      prompt% rpm -ql compat-egcs-6.2-1.1.2.14 | less 
      /usr/bin/egcs
      /usr/bin/i386-glibc21-linux-gcc
      /usr/bin/kgcc
      /usr/i386-glibc21-linux
      /usr/i386-glibc21-linux/bin
      /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
      ...
      prompt% rpm -ql compat-egcs-c++-6.2-1.1.2.14 | less
      /usr/bin/egcs++
      /usr/bin/i386-glibc21-linux-c++
      /usr/bin/i386-glibc21-linux-g++
    
    on a Red Hat 7.1 machine. Notice the programs 
    
      egcs++
      egcs 
    
    As a small test I did
    
      prompt% echo "int main() { return 0; }" > foo.c 
      prompt% egcs -v foo.c 
      Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
      gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
      ...
      #include "..." search starts here:
      #include <...> search starts here:
       /usr/local/include
       /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
       /usr/include
      End of search list.
      ...
    
    So it seems to me that you may get away with doing 
    
      CC=egcs CXX=egcs++ ./configure 
    
    [Do remember to remove config.cache] 
    
    I hope this helps you. 
    
    Yours, 
    
    Christian Holm Christensen -------------------------------------------
    Address: Sankt Hansgade 23, 1. th.           Phone:  (+45) 35 35 96 91 
             DK-2200 Copenhagen N                Cell:   (+45) 28 82 16 23
             Denmark                             Office: (+45) 353  25 305 
    Email:   cholm@nbi.dk                        Web:    www.nbi.dk/~cholm
    



    This archive was generated by hypermail 2b30 : Thu Oct 11 2001 - 06:53:53 EDT