Re: NSPR build

"Vinu" <[email protected]> Mon, 1 Jun 2009 11:34:32 -0400
Newsgroups gmane.comp.mozilla.devel.nspr
Organization Pass
Message-ID <[email protected]>
I can do a optimized build now with
./configure --disable-debug.

However I still get Undefined symbol __eprintf with a debug build.
even though i did a cleanup and redid everything from scratch.

Do i need to get a newer version of the gcc? Is there any other way to solve 
this undefined symbol error?

Thanks
Vinu

"Wan-Teh Chang" <[email protected]> wrote in message 
news:[email protected]...
On Thu, May 28, 2009 at 9:16 AM, VinuT <[email protected]> 
wrote:
> Yes, I do use GNU make. (make -v shows that), although i cannot find the
> gmake command.
>
> I tried building NSPR 4.7.4 with the suggestions you provided and the 
> build
> seems to go fine, except it fails at final linking stage
> and gives the error.
>
> Undefined first referenced
> symbol in file
> __eprintf misc/./prerrortable.o
> ld: fatal: Symbol referencing errors. No output written to libnspr4.so
> collect2: ld returned 1 exit status
> make[2]: *** [libnspr4.so] Error 1
> make[2]: Leaving directory
> `/space/xxs/tmp/nspr-4.6.4/mozilla/nsprpub/pr/src'
> make[1]: *** [export] Error 2

I think you're very close now.  Unfortunately I don't have
the setup to reproduce this linker error and fix it for you.

The __eprintf symbol is most likely defined in gcc's
runtime library (libgcc.so or libgcc.a).

You can try redoing everything from scratch.  One
way to do that is:

cd mozilla/nsprpub
make distclean

And then redo:

CC=gcc CXX=g++ ./configure
make

> I read on the internet that eprintf is a symbol referenced by the gcc 
> Assert
> macro and doing -DNDEBUG as a build option will make the error go away.
> However I do not know how to pass this option to make.
> Can anybody help me?

You can try passing --disable-debug --enable-optimize to ./configure.
But that will also remove the debugger symbols, so you will need
to resort to printf statements, which should be OK in this case.

Wan-Teh