JuliaPackaging / BinaryBuilder.jl

Binary Dependency Builder for Julia
https://binarybuilder.org
Other
392 stars 101 forks source link

Build jll error #1217

Closed liushang0322 closed 2 years ago

liushang0322 commented 2 years ago

I am using BinaryBuilder to build jll I got the following error when I use BinaryBuilder.run_wizard(), what should I do please

checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking for memory.h... (cached) yes
checking for string.h... (cached) yes
checking build system type... Invalid configuration `x86_64-linux-musl': system `musl' not recognized
configure: error: /bin/sh ./config.sub x86_64-linux-musl failed
sandbox:${WORKSPACE}/srcdir/libfec-1.0 # 
Keno commented 2 years ago

Try update_configure_scripts first.

liushang0322 commented 2 years ago

Try update_configure_scripts first.

thank you so much for your reply this help me pass this problem

but now there is another problem

i use make -j${nproc} than this is the problem

sandbox:${WORKSPACE}/srcdir/libfec-1.0 # make -j${nproc}
cc -g -O2 -I. -Wall    -c -o cpu_mode_x86_64.o cpu_mode_x86_64.c
cpu_mode_x86_64.c: In function ‘find_cpu_mode’:
cpu_mode_x86_64.c:17:7: warning: unused variable ‘f’ [-Wunused-variable]
   int f;
       ^
cc -g -O2 -I. -Wall    -c -o fec.o fec.c
cc -g -O2 -I. -Wall    -c -o sim.o sim.c
cc -g -O2 -I. -Wall    -c -o viterbi27.o viterbi27.c
cc -g -O2 -I. -Wall    -c -o viterbi27_port.o viterbi27_port.c
cc -g -O2 -I. -Wall    -c -o viterbi29.o viterbi29.c
cc -g -O2 -I. -Wall    -c -o viterbi29_port.o viterbi29_port.c
cc -g -O2 -I. -Wall    -c -o viterbi39.o viterbi39.c
cc -g -O2 -I. -Wall    -c -o viterbi39_port.o viterbi39_port.c
cc -g -O2 -I. -Wall    -c -o viterbi615.o viterbi615.c
cc -g -O2 -I. -Wall    -c -o viterbi615_port.o viterbi615_port.c
cc -g -O2 -I. -Wall    -c -o encode_rs_char.o encode_rs_char.c
cc -g -O2 -I. -Wall    -c -o encode_rs_int.o encode_rs_int.c
cc -g -O2 -I. -Wall    -c -o encode_rs_8.o encode_rs_8.c
cc -g -O2 -I. -Wall    -c -o decode_rs_char.o decode_rs_char.c
cc -g -O2 -I. -Wall    -c -o decode_rs_int.o decode_rs_int.c
cc -g -O2 -I. -Wall    -c -o decode_rs_8.o decode_rs_8.c
cc -g -O2 -I. -Wall    -c -o init_rs_char.o init_rs_char.c
cc -g -O2 -I. -Wall    -c -o init_rs_int.o init_rs_int.c
gcc  -g -O2 -I. -Wall  -c -o gen_ccsds.o gen_ccsds.c
gcc -g -O2 -I. -Wall  -c -o init_rs_char_local.o init_rs_char_local.c
gcc -o gen_ccsds gen_ccsds.o init_rs_char_local.o
./gen_ccsds > ccsds_tab.c
cc -g -O2 -I. -Wall    -c -o ccsds_tab.o ccsds_tab.c
cc -g -O2 -I. -Wall    -c -o encode_rs_ccsds.o encode_rs_ccsds.c
cc -g -O2 -I. -Wall    -c -o decode_rs_ccsds.o decode_rs_ccsds.c
gcc -g -O2 -I. -Wall  -c -o gen_ccsds_tal.o gen_ccsds_tal.c
gcc -o gen_ccsds_tal gen_ccsds_tal.o
./gen_ccsds_tal > ccsds_tal.c
cc -g -O2 -I. -Wall    -c -o ccsds_tal.o ccsds_tal.c
cc -g -O2 -I. -Wall    -c -o dotprod.o dotprod.c
cc -g -O2 -I. -Wall    -c -o dotprod_port.o dotprod_port.c
cc -g -O2 -I. -Wall    -c -o peakval.o peakval.c
cc -g -O2 -I. -Wall    -c -o peakval_port.o peakval_port.c
cc -g -O2 -I. -Wall    -c -o sumsq.o sumsq.c
cc -g -O2 -I. -Wall    -c -o sumsq_port.o sumsq_port.c
ar rv libfec.a cpu_mode_x86_64.o fec.o sim.o viterbi27.o viterbi27_port.o viterbi29.o viterbi29_port.o viterbi39.o viterbi39_port.o viterbi615.o viterbi615_port.o encode_rs_char.o encode_rs_int.o encode_rs_8.o decode_rs_char.o decode_rs_int.o decode_rs_8.o init_rs_char.o init_rs_int.o ccsds_tab.o encode_rs_ccsds.o decode_rs_ccsds.o ccsds_tal.o dotprod.o dotprod_port.o peakval.o peakval_port.o sumsq.o sumsq_port.o
/opt/x86_64-linux-gnu/bin/x86_64-linux-gnu-ar: creating libfec.a
a - cpu_mode_x86_64.o
a - fec.o
a - sim.o
a - viterbi27.o
a - viterbi27_port.o
a - viterbi29.o
a - viterbi29_port.o
a - viterbi39.o
a - viterbi39_port.o
a - viterbi615.o
a - viterbi615_port.o
a - encode_rs_char.o
a - encode_rs_int.o
a - encode_rs_8.o
a - decode_rs_char.o
a - decode_rs_int.o
a - decode_rs_8.o
a - init_rs_char.o
a - init_rs_int.o
a - ccsds_tab.o
a - encode_rs_ccsds.o
a - decode_rs_ccsds.o
a - ccsds_tal.o
a - dotprod.o
a - dotprod_port.o
a - peakval.o
a - peakval_port.o
a - sumsq.o
a - sumsq_port.o
ranlib libfec.a
gcc -shared -Xlinker -soname=libfec.so -o libfec.so -Wl,-whole-archive cpu_mode_x86_64.o fec.o sim.o viterbi27.o viterbi27_port.o viterbi29.o viterbi29_port.o viterbi39.o viterbi39_port.o viterbi615.o viterbi615_port.o encode_rs_char.o encode_rs_int.o encode_rs_8.o decode_rs_char.o decode_rs_int.o decode_rs_8.o init_rs_char.o init_rs_int.o ccsds_tab.o encode_rs_ccsds.o decode_rs_ccsds.o ccsds_tal.o dotprod.o dotprod_port.o peakval.o peakval_port.o sumsq.o sumsq_port.o -Wl,-no-whole-archive -lc
/opt/x86_64-linux-gnu/bin/../lib/gcc/x86_64-linux-gnu/4.8.5/../../../../x86_64-linux-gnu/bin/ld: fec.o: relocation R_X86_64_32 against `Partab' can not be used when making a shared object; recompile with -fPIC
fec.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [makefile:103: libfec.so] Error 1
giordano commented 2 years ago

Side note:

Try update_configure_scripts first.

This tip is also documented: https://docs.binarybuilder.org/stable/troubleshooting/#Old-Autoconf-helper-scripts

but now there is another problem

The solution is in the error messag you shared:

/opt/x86_64-linux-gnu/bin/../lib/gcc/x86_64-linux-gnu/4.8.5/../../../../x86_64-linux-gnu/bin/ld: fec.o: relocation R_X86_64_32 against `Partab' can not be used when making a shared object; recompile with -fPIC

How to do this depends on the build system. Sometimes the configure script has an option to use -fPIC (see ./configure --help), otherwise you may have to do something like

export CFLAGS=-fPIC

before calling ./configure (although this may override default CFLAGS, which is often not a good idea).

Another side note: the fact that the log sometimes shows gcc looks suspiciously wrong, it feels like the build system is forcing using gcc instead of cc (and just for some files).

I'm going to close the ticket, nothing really a bug in BinaryBuilder. If you have more questions about the use of BinaryBuilder please open a discussion thread or start a thread on Discourse