mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-05 19:07:07 +00:00
4ed00bba84
* config.if (libc_interface): Set to -libc6.2- for cross compiling to Linux/glibc 2.2.
94 lines
2.1 KiB
Plaintext
94 lines
2.1 KiB
Plaintext
#! /dev/null
|
|
# Don't call it directly. This shell script fragment is called to
|
|
# determine:
|
|
#
|
|
# 1. libstcxx_interface: the interface name for libstdc++.
|
|
# 2. cxx_interface: the interface name for c++.
|
|
# 3. libc_interface: the interface name for libc.
|
|
#
|
|
|
|
# Get the top level src dir.
|
|
if [ -z "${topsrcdir}" -a -z "${top_srcdir}" ]
|
|
then
|
|
echo "Undefined top level src dir: topsrcdir and top_srcdir are empty" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -n "${topsrcdir}" ]
|
|
then
|
|
if_topsrcdir=${topsrcdir}
|
|
else
|
|
if_topsrcdir=${top_srcdir}
|
|
fi
|
|
|
|
if [ "${enable_libstdcxx_v3}" = "yes" ] ; then
|
|
libstdcxx_srcdir=${if_topsrcdir}/libstdc++-v3
|
|
else
|
|
libstdcxx_srcdir=${if_topsrcdir}/libstdc++
|
|
fi
|
|
|
|
if [ -f ${libstdcxx_srcdir}/Makefile.in ]; then
|
|
# We check libstdc++ for libstdcxx_interface.
|
|
libstdcxx_interface=`grep "^INTERFACE" ${libstdcxx_srcdir}/Makefile.in | sed 's/INTERFACE[ ]*=[ ]*\(.*\)/\1/'`
|
|
else
|
|
libstdcxx_interface=
|
|
fi
|
|
|
|
if [ -f ${if_topsrcdir}/gcc/cp/Makefile.in ]; then
|
|
# We check gcc/cp for cxx_interface.
|
|
cxx_interface=`grep "^INTERFACE" ${if_topsrcdir}/gcc/cp/Makefile.in | sed 's/INTERFACE[ ]*=[ ]*\(.*\)/\1/'`
|
|
else
|
|
cxx_interface=
|
|
fi
|
|
|
|
# The trickiest part is libc_interface.
|
|
if [ -z "${libc_interface}" ]
|
|
then
|
|
case ${target_os} in
|
|
*linux*libc1*|*linux*libc5*)
|
|
case ${target_alias} in
|
|
*alpha*|*powerpc*)
|
|
libc_interface=-libc5.9-
|
|
;;
|
|
*)
|
|
libc_interface=-libc5-
|
|
;;
|
|
esac
|
|
;;
|
|
*linux*gnu*)
|
|
# We have to work harder to figure it out.
|
|
if [ ${target_alias} = ${build_alias} ]
|
|
then
|
|
dummy=if$$
|
|
cat >$dummy.c <<EOF
|
|
#include <features.h>
|
|
main(argc, argv)
|
|
int argc;
|
|
char *argv[];
|
|
{
|
|
printf("%d\n", __GLIBC_MINOR__);
|
|
return 0;
|
|
}
|
|
EOF
|
|
${CC-cc} $dummy.c -o $dummy 2>/dev/null
|
|
if [ "$?" = 0 ]
|
|
then
|
|
libc_interface=-libc6.`./$dummy`-
|
|
rm -f $dummy.c $dummy
|
|
else
|
|
# It should never happen.
|
|
echo "Cannot find the GNU C library minor version number." >&2
|
|
rm -f $dummy.c $dummy
|
|
exit 1
|
|
fi
|
|
else
|
|
# Cross compiling. Assume glibc 2.2.
|
|
libc_interface=-libc6.2-
|
|
fi
|
|
;;
|
|
*)
|
|
libc_interface=-
|
|
;;
|
|
esac
|
|
fi
|