RE: relocation failed, recompile with -fPIC?

Dejan Latinovic <[email protected]>
Newsgroups gmane.linux.debian.ports.mips
Message-ID <[email protected]>

Hello,

This issue is solved:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765465


Best Regards,
Dejan.


________________________________________
From: David Daney [[email protected]]
Sent: Wednesday, October 08, 2014 7:48 PM
To: Eduard Bloch
Cc: [email protected]
Subject: Re: relocation failed, recompile with -fPIC?

On 10/08/2014 10:13 AM, Eduard Bloch wrote:
> Hello Mips porters,
>
> can anyone advise how to process on this FTBFS?
> https://buildd.debian.org/status/fetch.php?pkg=encfs&arch=mips&ver=1.7.4-4&stamp=1412710882
>
> It fails with:
> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I../intl -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -D__STDC_FORMAT_MACROS -DRLOG_COMPONENT=encfs -I/usr/include -DLOCALEDIR=\"/usr/share/locale\" -W -Wall -Wpointer-arith -Wwrite-strings -g -O2 -Wformat -Werror=format-security -flto -flto -pthread -c SSL_Cipher.cpp  -fPIC -DPIC -o .libs/SSL_Cipher.o
> SSL_Cipher.cpp:199:13: warning: 'BF_Cipher_registered' defined but not used [-Wunused-variable]
>   static bool BF_Cipher_registered = Cipher::Register("Blowfish",
>               ^
> SSL_Cipher.cpp:244:13: warning: 'AES_Cipher_registered' defined but not used [-Wunused-variable]
>   static bool AES_Cipher_registered = Cipher::Register("AES",
>               ^
> /bin/bash ../libtool --tag=CXX   --mode=link g++ -DRLOG_COMPONENT="encfs" -I/usr/include  -DLOCALEDIR=\"/usr/share/locale\" -W -Wall -Wpointer-arith -Wwrite-strings -g -O2 -Wformat -Werror=format-security -flto -flto -pthread  -version-info 6:1:0 -Wl,-z,relro -Wl,-z,now -flto -flto   -o libencfs.la -rpath /usr/lib readpassphrase.lo base64.lo ConfigReader.lo ConfigVar.lo Context.lo Cipher.lo CipherKey.lo FileIO.lo RawFileIO.lo BlockFileIO.lo CipherFileIO.lo MACFileIO.lo NameIO.lo StreamNameIO.lo BlockNameIO.lo NullNameIO.lo Interface.lo MemoryPool.lo NullCipher.lo DirNode.lo FileNode.lo FileUtils.lo openssl.lo autosprintf.lo SSL_Cipher.lo -lrlog -lssl -lcrypto -lboost_serialization -lboost_filesystem -lboost_system
> libtool: link: g++ -shared -nostdlib /usr/lib/gcc/mips-linux-gnu/4.9/../../../mips-linux-gnu/crti.o /usr/lib/gcc/mips-linux-gnu/4.9/crtbeginS.o  .libs/readpassphrase.o .libs/base64.o .libs/ConfigReader.o .libs/ConfigVar.o .libs/Context.o .libs/Cipher.o .libs/CipherKey.o .libs/FileIO.o .libs/RawFileIO.o .libs/BlockFileIO.o .libs/CipherFileIO.o .libs/MACFileIO.o .libs/NameIO.o .libs/StreamNameIO.o .libs/BlockNameIO.o .libs/NullNameIO.o .libs/Interface.o .libs/MemoryPool.o .libs/NullCipher.o .libs/DirNode.o .libs/FileNode.o .libs/FileUtils.o .libs/openssl.o .libs/autosprintf.o .libs/SSL_Cipher.o   /usr/lib/librlog.so -lssl -lcrypto -lboost_serialization -lboost_filesystem -lboost_system -L/usr/lib/gcc/mips-linux-gnu/4.9 -L/usr/lib/gcc/mips-linux-gnu/4.9/../../../mips-linux-gnu -L/usr/lib/gcc/mips-linux-gnu/4.9/../../../../lib -L/lib/mips-linux-gnu -L/lib/../lib -L/usr/lib/mips-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/mips-linux-gnu/4.9/../../.. -lstdc++ -lm -lc -lgcc_s /usr!
 /lib/gcc/
 m
ips-linux-gnu/4.9/crtendS.o /usr/lib/gcc/mips-linux-gnu/4.9/../../../mips-linux-gnu/crtn.o  -pthread -Wl,-z -Wl,relro -Wl,-z -Wl,now   -pthread -Wl,-soname -Wl,libencfs.so.6 -o .libs/libencfs.so.6.0.1
> /usr/bin/ld: /tmp/ccuNHoVF.ltrans0.ltrans.o: relocation R_MIPS_HI16 against `__gnu_local_gp' can not be used when making a shared object; recompile with -fPIC
> /tmp/ccuNHoVF.ltrans0.ltrans.o: error adding symbols: Bad value
>

You have to find the commands that are generating
/tmp/ccuNHoVF.ltrans0.ltrans.o

They are not shown in the logs.

The error message is correct, '__gnu_local_gp' cannot be used in
position independent code.  If the offending file is being generated by
gcc/g++ then you should be able to show the command line that led to its
being created.




> But -fPIC is used everywhere AFAICS (except for the linking call).

It should probably be used for linking too.  Why isn't it?

If the linking step is generating /tmp/ccuNHoVF.ltrans0.ltrans.o, this
could explain your problem.


> It also happens on mipsel.
>

Not surprising, it is not an endian specific issue.

> Thanks,
> Eduard.
>


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: https://lists.debian.org/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.