[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#32211: problems with cross-compiling
From: |
Jörg Stucke |
Subject: |
bug#32211: problems with cross-compiling |
Date: |
Thu, 19 Jul 2018 16:07:10 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
Hi,
I was trying to cross-compile lighttpd using a mips cross-compiling
toolchain and clang. lighttpd uses libtool to compile some libraries. I
got an error when libtool tried to link with clang:
/bin/bash ../libtool --tag=CC --mode=link /usr/bin/clang-6.0
-target mips-linux-gnu -I/usr/mips-linux-gnu/include/ -Wall -W -Wshadow
-pedantic -module -export-dynamic -avoid-version -target mips-linux-gnu
-o mod_flv_streaming.la -rpath /usr/local/lib mod_flv_streaming.lo
libtool: link: rm -fr .libs/mod_flv_streaming.la
.libs/mod_flv_streaming.lai .libs/mod_flv_streaming.so
libtool: link: /usr/bin/clang-6.0 -shared -fPIC -DPIC
.libs/mod_flv_streaming.o -Wl,-soname -Wl,mod_flv_streaming.so -o
.libs/mod_flv_streaming.so
/usr/bin/ld: .libs/mod_flv_streaming.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: .libs/mod_flv_streaming.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: .libs/mod_flv_streaming.o: Relocations in generic ELF (EM: 8)
.libs/mod_flv_streaming.o: error adding symbols: File in wrong format
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
It seems that the linking flag "-target mips-linux-gnu" was removed by
libtool which resulted in the linker (clang) assuming the wrong
architecture (x86_64). The flag was set in the LDFLAGS environment
variable.
Before, it gets passed correctly during compiling (with CFLAGS="-target
mips-linux-gnu"):
/bin/bash ../libtool --tag=CC --mode=compile /usr/bin/clang-6.0
-DHAVE_CONFIG_H -DHAVE_VERSIONSTAMP_H -
DLIBRARY_DIR="\"/usr/local/lib\"" -DSBIN_DIR="\"/usr/local/sbin\"" -I.
-I.. -D_REENTRANT -D_FILE_OFFSET_
BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -target mips-linux-gnu
-I/usr/mips-linux-gnu/include/ -Wall -
W -Wshadow -pedantic -MT mod_flv_streaming.lo -MD -MP -MF
.deps/mod_flv_streaming.Tpo -c -o mod_flv_stream
ing.lo mod_flv_streaming.c
libtool: compile: /usr/bin/clang-6.0 -DHAVE_CONFIG_H
-DHAVE_VERSIONSTAMP_H -DLIBRARY_DIR=\"/usr/local/lib
\" -DSBIN_DIR=\"/usr/local/sbin\" -I. -I.. -D_REENTRANT
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARG
E_FILES -target mips-linux-gnu -I/usr/mips-linux-gnu/include/ -Wall -W
-Wshadow -pedantic -MT mod_flv_stre
aming.lo -MD -MP -MF .deps/mod_flv_streaming.Tpo -c mod_flv_streaming.c
-fPIC -DPIC -o .libs/mod_flv_streaming.o
I'm not sure if this is intended or an error. The Problem only occurs if
the flag "-target mips-linux-gnu" is set in CFLAGS and LDFLAGS.
Changing the environment variable CC to "/usr/bin/clang -target
mips-linux-gnu" instead, mitigates the problem, since it is then present
during linking with libtool. I tried it with lighttpd 1.4.49 which uses
the latest release version of libtool (2.4.6).
regards,
Jörg
- bug#32211: problems with cross-compiling,
Jörg Stucke <=