relro and precompiled headers

Dan Horák dan at danny.cz
Fri Jul 1 12:15:08 UTC 2011


Hello,

when I'm building Code::Block in rawhide I'm getting into troubles with
the "relro" feature when combined with pre-compiled headers.

with default flags I get:
...
g++ -DHAVE_CONFIG_H  -I/usr/lib64/wx/include/gtk2-unicode-release-2.8
-I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__
-pthread -I../../src/include -I../../src/sdk/wxscintilla/include
-I../../src/include/scripting/include
-I../../src/include/scripting/sqplus -I../../src/include/mozilla_chardet
-Ulinux -Uunix  -O2 -ffast-math -DCB_AUTOCONF -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -Wl,-z,relro -m64 -mtune=generic -DCB_PRECOMP
-Winvalid-pch -fPIC -DPIC -fexceptions -o ../../src/include/sdk.h.gch
-xc++-header ./sdk.h
In file included from ./sdk_common.h:40:0,
                 from ./sdk_precomp.h:13,
                 from ./sdk.h:17:
./prep.h:32:1: warning: identifier ‘nullptr’ will become a keyword in C
++0x [-Wc++0x-compat]
In file included from ./sdk_common.h:40:0,
                 from ./sdk_precomp.h:13,
                 from ./sdk.h:17:
./prep.h: In member function ‘ID::operator void*() const’:
./prep.h:333:45: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
/usr/lib/gcc/x86_64-redhat-linux/4.6.1/../../../../lib64/crt1.o: In
function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status


and with "relro" removed the headers are pre-compiled as are in F<=15

Is it a bug or feature in g++ or somewhere else?


		Dan




More information about the devel mailing list