1 2 Previous Next 16 Replies Latest reply: Jul 7, 2011 11:41 AM by Steve.Clamage-Oracle RSS

    trying to compile cern root framework

    802031
      Hi,

      i'm trying to compile the ROOT Data Analysis Framework ( [http://root.cern.ch] ) on Solaris 10 x86 (Sun x4200 Server).
      But i get the follwing error:

      CC -m64 -KPIC -I/usr/openwin/include -library=stlport4 -Iinclude -mt -Icore/pcre/src/pcre-7.8 -D__asm__=asm -D__volatile__= -I. -Icint/cint/inc -o core/base/src/G__Base1.o -c core/base/src/G__Base1.cxx
      Signal 11:
      while processing core/base/src/G__Base1.cxx at line 23854.

      What is the meaning of Siignal 11 and how can i solve it?


      Line 23854 from G__Base1.cxx:
      static int G__G__Base1__0_178(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash) {
      ...
      $ CC -V
      CC: Sun C++ 5.10 SunOS_i386 128229-10 2010/08/18

      Thanks for any help

      Julian

      Edited by: user13142914 on Sep 30, 2010 4:18 AM

      Edited by: user13142914 on Sep 30, 2010 4:19 AM
        • 1. Re: trying to compile cern root framework
          Steve.Clamage-Oracle
          A signal 11 is a "segmentation violation", meaning that the program (a compiler component in this case) tried to access an address not in its address space. The most usual cause is dereferencing a null pointer. (A null pointer on Solaris or Linux is zero, and 0 is not a valid address.)

          Any compiler crash is compiler bug, of course, and there is usually no way to relate any particular source code construct to the compiler failure. It would help to know which component is crashing. Please add the options
          <pre>-V -filt=%none </pre> to the command line and report the output. The <tt>-V</tt> causes each component to announce itself and its version, and the <tt>-filt=%none</tt> ensures the output occurs in order.
          • 2. Re: trying to compile cern root framework
            802031
            thank you for your fast answer. Here is the ouput:

            # CC -V -filt=%none -m64 -KPIC -I/usr/openwin/include -library=stlport4 -Iinclude -mt -Icore/pcre/src/pcre-7.8 -D__asm__=asm -D__volatile__= -I. -Icint/cint/inc -o core/base/src/G__Base1.o -c core/base/src/G__Base1.cxx
            CC: Sun C++ 5.10 SunOS_i386 128229-10 2010/08/18
            ccfe: Sun C++ 5.10 SunOS_i386 128229-10 2010/08/18
            Signal 11:
            while processing core/base/src/G__Base1.cxx at line 23854.
            #


            Julian
            • 3. Re: trying to compile cern root framework
              Steve.Clamage-Oracle
              It looks like you have all the current patches for Studio 12u1.

              The next step would be to file a bug report, but a test case would be needed. Try filing a report at [url http://bugs.sun.com/]bugs.sun.com
              There is no way to attach a test case to the report, but someone (probably me) will ask you for a test case.

              To avoid us having to download all of large software suite, usually you can create a preprocessed file that can be compiled by itself to show the error. For example, if your original command line is <pre>CC ... -c foo.cc</pre> change <tt>-c</tt> to <tt>-E</tt> and direct the output to a file: <pre>CC ... -E foo.cc > test.i</pre> Then compile <tt>test.i</tt> with the original command line to see if you get the same error.
              • 4. Re: trying to compile cern root framework
                802031
                thanks again for your help.

                I reported the case via bugs.sun.com.
                The assigned internal review ID is 1880144

                I hope i filled in everything right - i reported a bug for the first time.
                I have uploaded my test.i file, so you can access it:

                http://www.cumcui.com/test.i

                The file size is about 2.4MByte

                Julian
                • 5. Re: trying to compile cern root framework
                  Steve.Clamage-Oracle
                  I verified that the bug still exists in the current development compiler, and it is now filed as CR 6989016.
                  It should be visible at bugs.sun.com in a day or two.

                  To get immediate action on this problem, you would need to have a support contract, in which case you could escalate the bug and get a patch as soon as possible. Otherwise, the bug goes in the queue to be fixed on a time-available basis.
                  • 6. Re: trying to compile cern root framework
                    muralirachakonda
                    Is this issue got resolved?

                    I am also facing similar problem. Code works fine with 5.2 compiler but not with 5.10 compiler.

                    Code gives Signal 11 error

                    Thanks
                    • 7. Re: trying to compile cern root framework
                      802031
                      Oh, I'm not alone with my problems trying to compile and run ROOT under Solaris x86 64bit ;)

                      I don't have a support contract, so i can't do anything more...

                      The bug report can be found here:

                      http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6989016

                      You can vote for this bug.
                      If there are enough people who vote for this bug, it would help - perhaps.


                      Julian
                      • 8. Re: trying to compile cern root framework
                        Steve.Clamage-Oracle
                        The C++ 5.2 compiler is part of Workshop 6 update 1, released in the year 2000.
                        It has been End Of Service Life for several years. Not only is no support available for it, it runs only on versions of Solaris that are also obsolete. If you need to continue to use outdated OS and compiler versions, you will have to work around any problems you find.

                        If you run on Solaris 8 or later, preferably Solaris 10, you can upgrade to a more recent Studio version, one that is supported, and which is free for all uses. Check here for more details:
                        http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html
                        • 9. Re: trying to compile cern root framework
                          802031
                          i just tried to compile the current development release of ROOT (5.27-06)
                          with Sun Studio 12.2. The problem with Signal 11 while compiling the file G__Base1.cxx
                          has gone away. But there is another error later:

                          bin/rmkdepend -R -fcore/newdelete/src/NewDelete.d -Y -w 1000 -- -m64 -KPIC -I/usr/openwin/include -library=stlport4 -Iinclude -mt -D__cplusplus -- core/newdelete/src/NewDelete.cxx
                          CC -O -m64 -KPIC -I/usr/openwin/include -library=stlport4 -Iinclude -mt -o core/newdelete/src/NewDelete.o -c core/newdelete/src/NewDelete.cxx
                          "core/newdelete/src/NewDelete.cxx", line 194: Error: The prior declaration for operator new(unsigned long) has an exception specification.
                          "core/newdelete/src/NewDelete.cxx", line 253: Error: The prior declaration for operator delete(void*) has an exception specification.
                          2 Error(s) detected.


                          Parts of NewDelete.cxx:
                          #ifdef R__THROWNEWDELETE
                          #   ifdef R__OLDHPACC
                          #      define R__THROW_BAD  throw(bad_alloc)
                          #   else
                          #      define R__THROW_BAD  throw(std::bad_alloc)
                          #   endif
                          #   define R__THROW_NULL throw()
                          #else
                          #   define R__THROW_BAD
                          #   define R__THROW_NULL
                          #endif
                          Line 194:
                          void *operator new(size_t size) R__THROW_BAD
                          { ... }
                          Line 253:
                          void operator delete(void *ptr) R__THROW_NULL
                          { ... }
                          CC -V:
                          CC: Sun C++ 5.11 SunOS_i386 2010/08/13
                          usage: CC [ options ] files. Use 'CC -flags' for details

                          Thank you for any help.

                          Julian
                          • 10. Re: trying to compile cern root framework
                            Steve.Clamage-Oracle
                            The option <tt>-D__cplusplus</tt> on the command line will cause problems. That macro name is reserved to the compiler, which currently by default defines it to be 199711L. Your command line changes the value to 1. The standard headers have code conditionalized on the value of that macro to determine what declarations are seen.

                            First, remove that macro definition form the command line, and let the compiler define it for itself.

                            Next, if you replace the library versions of operator new and operator delete, their signatures must agree with the declarations assumed by the compiler (as required by the C++ Standard). You can find those declarations in standard header <tt>{noformat}<new>{noformat}</tt>.

                            If you still have problems post the details here.
                            • 11. Re: trying to compile cern root framework
                              810972
                              Tried to cheat the build system by compiling with g++, but only in 32 bit.
                              g++ -fPIC -O2  -I/usr/openwin/include -Iinclude -threads -o core/newdelete/src/NewDelete.o \
                              -c core/newdelete/src/NewDelete.cxx
                              Things are then save rootn.exe, which I touch to fool make into completion. The resulting binary root.exe works, but applications compiled against the root libs segfault.

                              Cheers, Peter.
                              • 12. Re: trying to compile cern root framework
                                Fedor-Oracle
                                Tried to cheat the build system by compiling with g++, but only in 32 bit.
                                Cheating like this will not bring you anything good.

                                G++ ABI is different than current Sun C++ ABI - exception handling, mangling, type layouts - everything is different.
                                Thus object files compiled by these compilers could hardly be even linked together.
                                And shared library being linked in will not work properly (say, any exception will cause a coredump).

                                regards,
                                __Fedor.
                                • 13. Re: trying to compile cern root framework
                                  810972
                                  I just realised ... Thanks for the quick answer.
                                  • 14. Re: trying to compile cern root framework
                                    810972
                                    Compiling NewDelete like this succeeded:
                                    CC  -O2 -m64 -KPIC -DR__THROWNEWDELETE -I/usr/openwin/include -library=stlport4  -Iinclude  -mt  -o core/newdelete/src/NewDelete.o -c /home/niessen/src/root/root_v5.28.00-64bit/core/newdelete/src/NewDelete.cxx
                                    Don't forget to compile your root applications with -library=stlport4, otherwise they won't run.
                                    1 2 Previous Next