JuliaLinearAlgebra / libblastrampoline

Using PLT trampolines to provide a BLAS and LAPACK demuxing library.
MIT License
66 stars 17 forks source link

Use Alpine 3.13 and remove `-fvisibility=protected` `-fuse-ld=gold` flags #49

Closed giordano closed 3 years ago

giordano commented 3 years ago

-fvisibility=protected doesn't really help us much and causes the following error on Alpine Linux:

cc -o /tmp/jl_ACPfla/build/libblastrampoline.so -g -O2 -std=c99 -fPIC -DLIBRARY_EXPORTS -D_GNU_SOURCE -fvisibility=protected -DF2C_AUTODETECTION /tmp/jl_ACPfla/build/libblastrampoline.o /tmp/jl_ACPfla/build/dl_utils.o /tmp/jl_ACPfla/build/config.o /tmp/jl_ACPfla/build/autodetection.o /tmp/jl_ACPfla/build/threading.o /tmp/jl_ACPfla/build/deepbindless_surrogates.o /tmp/jl_ACPfla/build/trampolines/trampolines_x86_64.o /tmp/jl_ACPfla/build/f2c_adapters.o -shared -ldl
/usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/jl_ACPfla/build/deepbindless_surrogates.o: relocation R_X86_64_PC32 against protected symbol `fake_lsame' can not be used when making a shared object
/usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make: *** [Makefile:35: /tmp/jl_ACPfla/build/libblastrampoline.so] Error 1
ERROR: LoadError: failed process: Process(`make -sC /libblastrampoline/src CFLAGS_add= ARCH=x86_64 install builddir=/tmp/jl_ACPfla/build prefix=/tmp/jl_ACPfla/output`, ProcessExited(2)) [2]

and -fuse-ld=gold was only needed to make -fvisibility=protected work (and it isn't even available on Alpine Linux in our current CI set up).

staticfloat commented 3 years ago

Thanks so much, Mosè!