Just a reply to myself. If called as --with-com_err="" it links with shared library just fine and -fPIE -pie seems to compile just OK. I am going to test if it runs ok...
Ondrej On Tue, Mar 29, 2011 at 09:56, Ondřej Surý <ond...@sury.org> wrote: > Hi, > > I am trying to enable hardening-wrapper for cyrus-imapd-2.4 > (http://wiki.debian.org/Hardening) and I had to disable HARDENING_PIE > because the build failed on: > > gcc -L/usr/lib -L/usr/lib -lpthread -o sievec sievec.o libsieve.a > ../lib/libcyrus.a ../lib/libcyrus_min.a libsieve.a -L/usr/lib > -lsasl2 -ldl -lfl -L/usr/lib -ldb-5.1 -lssl -lcrypto -lz > /usr/lib/libcom_err.a > /usr/bin/ld.bfd.real: /usr/lib/libcom_err.a(error_message.o): > relocation R_X86_64_32 against `.rodata.str1.1' can not be used when > making a shared object; recompile with -fPIC > /usr/lib/libcom_err.a: could not read symbols: Bad value > collect2: ld returned 1 exit status > > It looks like the problem is linking to a static libcom_err.a library. > Does anyone remember why you need to link to a static library here? > > I guess you want a static lib from the configure.in comment: > > COM_ERR_LIBS="-lcom_err" # hope it's not shared > > Ondrej > -- > Ondřej Surý <ond...@sury.org> > -- Ondřej Surý <ond...@sury.org>