aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucheng Zhang <geekLucian@outlook.com>2022-04-20 16:37:44 +0800
committerAndrew Waterman <andrew@sifive.com>2022-04-20 13:54:25 -0700
commitc7e75bf944957e58f16531eb6b8d118a92069346 (patch)
tree72d7495a6d438de7da376e0569831f6ab54d1faa
parentca69d69a304d5668a8c95d1de5c6c6fa71ed9936 (diff)
downloadpk-c7e75bf944957e58f16531eb6b8d118a92069346.zip
pk-c7e75bf944957e58f16531eb6b8d118a92069346.tar.gz
pk-c7e75bf944957e58f16531eb6b8d118a92069346.tar.bz2
Link -lgcc if it exists
-rwxr-xr-xconfigure142
-rw-r--r--configure.ac3
2 files changed, 130 insertions, 15 deletions
diff --git a/configure b/configure
index 2e88eb9..3066a8a 100755
--- a/configure
+++ b/configure
@@ -649,7 +649,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -740,7 +739,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -993,15 +991,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1139,7 +1128,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1292,7 +1281,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1596,6 +1584,52 @@ fi
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
@@ -4119,7 +4153,87 @@ LDFLAGS="$LDFLAGS -Wl,--build-id=none"
-LIBS="-lgcc"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __ashldi3 in -lgcc" >&5
+$as_echo_n "checking for __ashldi3 in -lgcc... " >&6; }
+if ${ac_cv_lib_gcc___ashldi3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgcc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char __ashldi3 ();
+int
+main ()
+{
+return __ashldi3 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_gcc___ashldi3=yes
+else
+ ac_cv_lib_gcc___ashldi3=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcc___ashldi3" >&5
+$as_echo "$ac_cv_lib_gcc___ashldi3" >&6; }
+if test "x$ac_cv_lib_gcc___ashldi3" = xyes; then :
+ LIBS="-lgcc"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __ashlti3 in -lgcc" >&5
+$as_echo_n "checking for __ashlti3 in -lgcc... " >&6; }
+if ${ac_cv_lib_gcc___ashlti3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgcc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char __ashlti3 ();
+int
+main ()
+{
+return __ashlti3 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_gcc___ashlti3=yes
+else
+ ac_cv_lib_gcc___ashlti3=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcc___ashlti3" >&5
+$as_echo "$ac_cv_lib_gcc___ashlti3" >&6; }
+if test "x$ac_cv_lib_gcc___ashlti3" = xyes; then :
+ LIBS="-lgcc"
+
+fi
diff --git a/configure.ac b/configure.ac
index 81492de..8204ca2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,7 +96,8 @@ LDFLAGS="$LDFLAGS -Wl,--build-id=none"
AC_SUBST(CFLAGS)
AC_SUBST(LDFLAGS)
-AC_SUBST([LIBS], ["-lgcc"])
+AC_CHECK_LIB([gcc], [__ashldi3], AC_SUBST([LIBS], ["-lgcc"]), AC_SUBST([LIBS]))
+AC_CHECK_LIB([gcc], [__ashlti3], AC_SUBST([LIBS], ["-lgcc"]), AC_SUBST([LIBS]))
AC_SUBST(WITH_ARCH)
AC_SUBST(host_alias)