-fPIE -pie builds fail

Ondřej Surý ondrej at sury.org
Tue Mar 29 04:42:16 EDT 2011


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ý <ondrej at 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ý <ondrej at sury.org>
>



-- 
Ondřej Surý <ondrej at sury.org>


More information about the Cyrus-devel mailing list