libelf: portability fixes from E5ten

This commit is contained in:
Dylan Araps 2020-05-26 18:01:54 +03:00
parent aba069a964
commit 58ff323f1f
No known key found for this signature in database
GPG Key ID: 46D62DD9F1DE636E

View File

@ -1,6 +1,6 @@
#!/bin/sh -e #!/bin/sh -e
# #
# Word splitting (for CFLAGS, CC, etc) is sadly required. # Word splitting (for CPPFLAGS, CC, etc) is sadly required.
# shellcheck disable=2086 # shellcheck disable=2086
# #
# This package used to provide the old 'libelf' library. This had a sane # This package used to provide the old 'libelf' library. This had a sane
@ -15,7 +15,8 @@
# elftoolchain requires BSD make to build. Rather than package BSD make, # elftoolchain requires BSD make to build. Rather than package BSD make,
# let's just do the equivalent ourselves in shell. This is fairly simple # let's just do the equivalent ourselves in shell. This is fairly simple
# as all we're building is 'libelf' and not the entire toolchain. # as all we're building is 'libelf' and not the entire toolchain.
export CFLAGS="-shared -fPIC -O2 $CFLAGS" export CPPFLAGS="-fPIC -O2 $CPPFLAGS"
export LDFLAGS="-shared $LDFLAGS"
# Patch unneeded in next release. # Patch unneeded in next release.
patch -p1 < libelf-linux.patch patch -p1 < libelf-linux.patch
@ -30,16 +31,18 @@ done
# Create all objects (.o). # Create all objects (.o).
for file in libelf/*.c; do for file in libelf/*.c; do
${CC:-cc} -I./libelf -I./common $CFLAGS -c -o "${file%%.c}.o" "$file" ${CC:-cc} -I./libelf -I./common $LDFLAGS $CPPFLAGS -c \
-o "${file%%.c}.o" "$file"
done done
mkdir -p "$1/usr/lib" mkdir -p "$1/usr/lib"
# Create shared library. # Create shared library.
${CC:-cc} $CFLAGS -I./libelf -I./common libelf/*.o -o "$1/usr/lib/libelf.so.1" ${CC:-cc} $LDFLAGS $CPPFLAGS -I./libelf -I./common libelf/*.o \
-o "$1/usr/lib/libelf.so.1"
# Create static library. # Create static library.
${AR:-ar} rc "$1/usr/lib/libelf.a" libelf/*.o ${AR:-ar} -rc "$1/usr/lib/libelf.a" libelf/*.o
# Install remaining headers/files. # Install remaining headers/files.
ln -sf libelf.so.1 "$1/usr/lib/libelf.so" ln -sf libelf.so.1 "$1/usr/lib/libelf.so"