- priority: 5 --> 7
ORP fails to compile with glibc 2.3:
g++ -c -w -O -DNDEBUG -DORP_POSIX -D_REENTRANT
-D__SMP__ -DOBJECT_LOCK_V2 -DLAZY_LOCK
-DLINUX_TLS_OPT -DGC_REWORK
-I../../../arch/ia32/ia32_o1_jit
-I../../../os/Linux/include -I../../../common/include
-I../../../interface -I../../../base_natives/common
-I../../../arch/ia32/x86
-I../../../common/jit_utils/include
-I../../../arch/ia32/dump cg_array_access.cpp -o
Linux/opt/cg_array_access.o
In file included from defines.h:10,
from cg_array_access.cpp:7:
../../../os/Linux/include/platform.h: In function
`void* get_specific00()':
../../../os/Linux/include/platform.h:143:
`SIZE_OF_PTHREAD_DESCR' undeclared
(first use this function)
../../../os/Linux/include/platform.h:143: (Each
undeclared identifier is
reported only once for each function it appears
in.)
../../../os/Linux/include/platform.h:143:
`OFFSET_OF_SPECIFIC_IN_THREAD_DESCR'
undeclared (first use this function)
make[3]: *** [Linux/opt/cg_array_access.o] Error 1
make[3]: Leaving directory
`/home/broonie/src/packages/orp/orp-1.0.9/arch/ia32/ia32_o1_jit'
make[2]: ***
[../../arch/ia32/ia32_o1_jit/Linux/opt/libvm.a] Error
2
make[2]: Leaving directory
`/home/broonie/src/packages/orp/orp-1.0.9/mains/orp'
make[1]: *** [opt] Error 2
make[1]: Leaving directory
`/home/broonie/src/packages/orp/orp-1.0.9'
make: *** [build] Error 2
This is caused by missing #defines giving the size of
some pthreads structures in the platform header file.
The same problem appears to cause crashes at runtime
with a binary built from older glibc for fairly
obvious reasons.
ORP really ought to avoid peering inside glibc
internal structures.