Child panics on OpenSolaris

Nils Goroll slink at schokola.de
Wed Feb 17 10:59:22 CET 2010


Hi Poul-Henning and all,

> We need CFLAGS to contain -mt on solaris, otherwise errno does not
> get macro-fied to be per-thread.
> 
> That's where the: EBADF comes from, some entirely different
> filedescriptor a long time ago, in the master process...

Fantastic. Thank you for putting so much effort into this.

But also: Stupid I didn't think about this. See how I'm compiling varnish since 
I started working with it:

## 64bit
LDFLAGS="-lpthread"
CFLAGS="-D_REENTRANT -m64" \
VCC_CC="exec gcc -fpic -D_REENTRANT -m64 -shared -o %o %s" \
./configure \
	'--enable-debugging-symbols' \
	'--enable-developer-warnings' \
	'--enable-dependency-tracking' \
	....

IIUC, this effectively has the same effect as -mt for SunCC:

User Commands                                               cc(1)



NAME
      cc - C compiler

[...]

      -mt  Use this option to compile and link multithreaded code.
           The -mt option assures that libraries are linked in the
           appropriate order.

           This option passes -D_REENTRANT to the preprocessor and
           passes -lthread in the correct order to ld.

           If you are using POSIX threads, you must link with the
           options -mt -lpthread.

Nils


More information about the varnish-misc mailing list