-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix #23903 - compile on pi4, debian bookworm due to missing '_atomic_…
…*' functions ##build
- Loading branch information
Showing
4 changed files
with
54 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,6 +19,7 @@ control_c() { | |
} | ||
trap control_c 2 | ||
DEBUGGER=1 | ||
USE_LIB_ATOMIC=0 | ||
USE_MAGIC=0 | ||
WANT_THREADS=1 | ||
LOADLIBS=1 | ||
|
@@ -195,6 +196,7 @@ EOF2 | |
printf " | ||
Optional Features: | ||
--disable-debugger disable native debugger features | ||
--with-libatomic force to use libatomic | ||
--with-sysmagic force to use system's magic | ||
--disable-threads disable use of thread apis | ||
--disable-loadlibs disable loading plugins | ||
|
@@ -301,9 +303,9 @@ echo "EMAIL: [email protected]" | |
echo "DESCRIPTION: The UNIX-like reverse engineering toolkit" | ||
echo "LANGS: c" | ||
echo "REQUIRED: libdl" | ||
echo "OPTIONAL: libmagic libz libzip libxxhash libssl liblibuv>=1.0.0" | ||
echo "OPTIONAL: libatomic libmagic libz libzip libxxhash libssl liblibuv>=1.0.0" | ||
echo "PKGCONFIG: capstone libsqsh liblz4 openssl libuv" | ||
echo "FLAGS: --disable-debugger --with-sysmagic --disable-threads --disable-loadlibs --enable-threadsafety --without-dylink --without-fork --without-ptrace-wrap --without-gperf --without-capstone --with-libr --with-static-themes --with-capstone-next --with-capstone5 --with-capstone4 --with-syscapstone --without-syscapstone --without-sqsh --with-syslz4 --with-syszip --with-sysxxhash --without-gpl --with-ssl --with-ssl-crypto --with-libuv --with-new-abi --with-rpath --with-compiler=gcc --with-ostype=auto --with-libversion=xxx --without-jemalloc --with-checks-level=2 --disable-debug-stuff" | ||
echo "FLAGS: --disable-debugger --with-libatomic --with-sysmagic --disable-threads --disable-loadlibs --enable-threadsafety --without-dylink --without-fork --without-ptrace-wrap --without-gperf --without-capstone --with-libr --with-static-themes --with-capstone-next --with-capstone5 --with-capstone4 --with-syscapstone --without-syscapstone --without-sqsh --with-syslz4 --with-syszip --with-sysxxhash --without-gpl --with-ssl --with-ssl-crypto --with-libuv --with-new-abi --with-rpath --with-compiler=gcc --with-ostype=auto --with-libversion=xxx --without-jemalloc --with-checks-level=2 --disable-debug-stuff" | ||
exit 0 | ||
;; | ||
--cache-file) | ||
|
@@ -356,6 +358,7 @@ echo "FLAGS: --disable-debugger --with-sysmagic --disable-threads --disabl | |
MANDIR="$value"; ;; | ||
|
||
"--disable-debugger") DEBUGGER="0"; ;; | ||
"--with-libatomic") USE_LIB_ATOMIC="1"; ;; | ||
"--with-sysmagic") USE_MAGIC="1"; ;; | ||
"--disable-threads") WANT_THREADS="0"; ;; | ||
"--disable-loadlibs") LOADLIBS="0"; ;; | ||
|
@@ -405,7 +408,7 @@ parse_options "$1" | |
shift | ||
done | ||
|
||
ENVWORDS="MANDIR DESCRIPTION INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR ETCDIR SYSCONFDIR DATADIR DOCDIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_PROGRAM_STRIP INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU VERSION VERSION_MAJOR VERSION_MINOR VERSION_PATCH VERSION_NUMBER PKGCFG_LIBDIR PKGCFG_INCDIR PKGNAME VPATH CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS CPPFLAGS LDFLAGS HAVE_LANG_C DEBUGGER HAVE_LIB_DL DL_LIBS PKGCONFIG R2_BUILDSYSTEM HAVE_PATCH PATCH HAVE_AR AR HAVE_GIT GIT HAVE_GPERF GPERF HAVE_LIB_MAGIC HAVE_LINUX_CAN_H USE_MAGIC USE_LIB_MAGIC LIBMAGIC WANT_THREADS LOADLIBS R_CRITICAL_ENABLED WANT_DYLINK HAVE_FORK WANT_PTRACE_WRAP WANT_GPERF WANT_CAPSTONE WITH_LIBR WITH_STATIC_THEMES USE_CSNEXT USE_CS5 USE_CS4 WITH_CAPSTONE WITHOUT_SYSCAPSTONE CAPSTONE_CFLAGS CAPSTONE_LDFLAGS HAVE_PKGCFG_CAPSTONE USE_CAPSTONE SQSH_CFLAGS SQSH_LDFLAGS HAVE_PKGCFG_LIBSQSH WITH_SQSH USE_SQSH LZ4_CFLAGS LZ4_LDFLAGS HAVE_PKGCFG_LIBLZ4 WITH_SYSLZ4 USE_SYSLZ4 HAVE_LIB_Z HAVE_LIB_ZIP USE_ZIP USE_LIB_ZIP LIBZIP HAVE_LIB_XXHASH USE_XXHASH USE_LIB_XXHASH LIBXXHASH WITH_GPL HAVE_DECL_ADDR_NO_RANDOMIZE HAVE_DECL___GLIBC__ HAVE_ARC4RANDOM_UNIFORM HAVE_EXPLICIT_BZERO HAVE_EXPLICIT_MEMSET HAVE_CLOCK_NANOSLEEP HAVE_SIGACTION HAVE_CLOCK_GETTIME CLOCK_LDFLAGS SUPPORT_GNU99 HAVE_LIB_GMP WANT_SSL WANT_SSL_CRYPTO HAVE_OPENSSL SSL_CFLAGS SSL_LDFLAGS HAVE_LIB_SSL HAVE_PKGCFG_OPENSSL WANT_LIBUV HAVE_LIBUV_VERSION_1_0_0 LIBUV_CFLAGS LIBUV_LDFLAGS HAVE_PKGCFG_LIBUV HAVE_LIBUV USE_NEW_ABI USE_RPATH USERCC USEROSTYPE LIBVERSION HAVE_JEMALLOC HAVE_PTRACE USE_PTRACE_WRAP R_CHECKS_LEVEL WANT_DEBUGSTUFF" | ||
ENVWORDS="MANDIR DESCRIPTION INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR ETCDIR SYSCONFDIR DATADIR DOCDIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_PROGRAM_STRIP INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU VERSION VERSION_MAJOR VERSION_MINOR VERSION_PATCH VERSION_NUMBER PKGCFG_LIBDIR PKGCFG_INCDIR PKGNAME VPATH CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS CPPFLAGS LDFLAGS HAVE_LANG_C DEBUGGER HAVE_LIB_DL DL_LIBS PKGCONFIG R2_BUILDSYSTEM HAVE_PATCH PATCH HAVE_AR AR HAVE_GIT GIT HAVE_GPERF GPERF HAVE_LIB_ATOMIC HAVE_LIB_MAGIC HAVE_LINUX_CAN_H USE_LIB_ATOMIC LIBATOMIC USE_MAGIC USE_LIB_MAGIC LIBMAGIC WANT_THREADS LOADLIBS R_CRITICAL_ENABLED WANT_DYLINK HAVE_FORK WANT_PTRACE_WRAP WANT_GPERF WANT_CAPSTONE WITH_LIBR WITH_STATIC_THEMES USE_CSNEXT USE_CS5 USE_CS4 WITH_CAPSTONE WITHOUT_SYSCAPSTONE CAPSTONE_CFLAGS CAPSTONE_LDFLAGS HAVE_PKGCFG_CAPSTONE USE_CAPSTONE SQSH_CFLAGS SQSH_LDFLAGS HAVE_PKGCFG_LIBSQSH WITH_SQSH USE_SQSH LZ4_CFLAGS LZ4_LDFLAGS HAVE_PKGCFG_LIBLZ4 WITH_SYSLZ4 USE_SYSLZ4 HAVE_LIB_Z HAVE_LIB_ZIP USE_ZIP USE_LIB_ZIP LIBZIP HAVE_LIB_XXHASH USE_XXHASH USE_LIB_XXHASH LIBXXHASH WITH_GPL HAVE_DECL_ADDR_NO_RANDOMIZE HAVE_DECL___GLIBC__ HAVE_ARC4RANDOM_UNIFORM HAVE_EXPLICIT_BZERO HAVE_EXPLICIT_MEMSET HAVE_CLOCK_NANOSLEEP HAVE___ATOMIC_FETCH_ADD_8 HAVE_SIGACTION HAVE_CLOCK_GETTIME FORCE_LIB_ATOMIC CLOCK_LDFLAGS SUPPORT_GNU99 HAVE_LIB_GMP WANT_SSL WANT_SSL_CRYPTO HAVE_OPENSSL SSL_CFLAGS SSL_LDFLAGS HAVE_LIB_SSL HAVE_PKGCFG_OPENSSL WANT_LIBUV HAVE_LIBUV_VERSION_1_0_0 LIBUV_CFLAGS LIBUV_LDFLAGS HAVE_PKGCFG_LIBUV HAVE_LIBUV USE_NEW_ABI USE_RPATH USERCC USEROSTYPE LIBVERSION HAVE_JEMALLOC HAVE_PTRACE USE_PTRACE_WRAP R_CHECKS_LEVEL WANT_DEBUGSTUFF" | ||
|
||
create_environ | ||
|
||
|
@@ -610,6 +613,7 @@ else | |
fi | ||
} | ||
|
||
check_library HAVE_LIB_ATOMIC atomic 0 | ||
check_library HAVE_LIB_MAGIC magic 0 | ||
check_include() { | ||
VAR=$1 | ||
|
@@ -637,6 +641,13 @@ fi | |
|
||
check_include HAVE_LINUX_CAN_H linux/can.h 0 | ||
|
||
if [ 11 = "$HAVE_LIB_ATOMIC$USE_LIB_ATOMIC" ]; then | ||
|
||
USE_LIB_ATOMIC="1" | ||
LIBATOMIC="'-latomic'" | ||
else | ||
USE_LIB_ATOMIC="0" | ||
LIBATOMIC=""; fi | ||
if [ 11 = "$HAVE_LIB_MAGIC$USE_MAGIC" ]; then | ||
|
||
USE_LIB_MAGIC="1" | ||
|
@@ -767,6 +778,13 @@ if [ $? = 0 ]; then | |
echo yes ; HAVE_CLOCK_NANOSLEEP=1 | ||
else | ||
HAVE_CLOCK_NANOSLEEP=0 ; echo no ; fi | ||
printf "checking function __atomic_fetch_add_8() in c... " | ||
echo "extern int __atomic_fetch_add_8(); int main(int ac, char **av){ __atomic_fetch_add_8(0); return 0; }" > test.c | ||
${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -lc test.c >/dev/null 2>&1 | ||
if [ $? = 0 ]; then | ||
echo yes ; HAVE___ATOMIC_FETCH_ADD_8=1 | ||
else | ||
HAVE___ATOMIC_FETCH_ADD_8=0 ; echo no ; fi | ||
printf "checking function sigaction() in c... " | ||
echo "extern int sigaction(); int main(int ac, char **av){ sigaction(0); return 0; }" > test.c | ||
${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -lc test.c >/dev/null 2>&1 | ||
|
@@ -781,6 +799,13 @@ if [ $? = 0 ]; then | |
echo yes ; HAVE_CLOCK_GETTIME=1 | ||
else | ||
HAVE_CLOCK_GETTIME=0 ; echo no ; fi | ||
if [ "$HAVE___ATOMIC_FETCH_ADD_8" = "0" ]; then | ||
if [ "$HAVE_LIB_ATOMIC" = "1" ]; then | ||
FORCE_LIB_ATOMIC="1" | ||
[ -z "${LIBATOMIC}" ] && LIBATOMIC="'-latomic'" | ||
else | ||
FORCE_LIB_ATOMIC="0" | ||
[ -z "${LIBATOMIC}" ] && LIBATOMIC=""; fi; fi | ||
if [ "$HAVE_CLOCK_GETTIME" = "0" ]; then | ||
if [ "$HAVE_DECL___GLIBC__" = "1" ]; then | ||
CLOCK_LDFLAGS="${CLOCK_LDFLAGS} '-lrt'"; fi; fi | ||
|
@@ -1021,7 +1046,7 @@ do_remove | |
if [ "$QUIET" = 0 ]; then | ||
echo | ||
echo "Final report:" | ||
for A in BUILD CC CFLAGS DEBUGGER HAVE_ARC4RANDOM_UNIFORM HAVE_EXPLICIT_BZERO USE_NEW_ABI HAVE_EXPLICIT_MEMSET HAVE_FORK HAVE_GPERF HAVE_LIBUV HAVE_LIB_GMP WANT_DEBUGSTUFF HAVE_OPENSSL WANT_SSL_CRYPTO HAVE_PTRACE HOST LDFLAGS LIBVERSION PKGCONFIG PREFIX R_CHECKS_LEVEL TARGET USERCC USEROSTYPE USE_CAPSTONE USE_LIB_MAGIC NEW_IO_CACHE USE_SQSH USE_LIB_XXHASH USE_LIB_ZIP USE_PTRACE_WRAP USE_SYSLZ4 VERSION WANT_DYLINK USE_SMALLZ4 ; do | ||
for A in BUILD CC CFLAGS DEBUGGER HAVE_ARC4RANDOM_UNIFORM HAVE_EXPLICIT_BZERO USE_NEW_ABI HAVE_EXPLICIT_MEMSET HAVE_FORK HAVE_GPERF HAVE_LIBUV HAVE_LIB_GMP WANT_DEBUGSTUFF HAVE_OPENSSL WANT_SSL_CRYPTO HAVE_PTRACE HOST LDFLAGS LIBVERSION PKGCONFIG PREFIX R_CHECKS_LEVEL TARGET USERCC USEROSTYPE USE_CAPSTONE USE_LIB_MAGIC NEW_IO_CACHE USE_SQSH USE_LIB_XXHASH USE_LIB_ZIP USE_PTRACE_WRAP USE_SYSLZ4 VERSION WANT_DYLINK USE_SMALLZ4 USE_LIB_ATOMIC HAVE___ATOMIC_FETCH_ADD_8 FORCE_LIB_ATOMIC ; do | ||
eval VAL="\$${A}" | ||
[ -z "${VAL}" ] && VAL="\"\"" | ||
echo " - ${A} = ${VAL}" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters