configure: Detect linker's NO_CROSSREFS_TO() support
NO_CROSSREFS_TO() was first introduced in binutils 2.27. It is used to have the linker report errors when symbols from a list of sections refer to a specified section, which is useful for verifying that normal code does not refer to INIT_ATTR code. Note this doesn't actually start using NO_CROSSREFS_TO() for builds -- that will have to wait until the toolchain upgrade when we'll have a new enough binutils -- it just detects support for the feature so it can be conditionally enabled in linker scripts. Change-Id: If1553eaa671fcbbdfe6af357a6331931e7c4f997
This commit is contained in:
parent
6e05fcf4d0
commit
e7cc77e5b8
1 changed files with 14 additions and 0 deletions
14
tools/configure
vendored
14
tools/configure
vendored
|
@ -4363,6 +4363,17 @@ else
|
|||
ldver=`$LD --version | head -n 1 | sed -e 's/\ /\n/g' | tail -n 1`
|
||||
fi
|
||||
|
||||
# Convert LD version to a number major*100 + minor
|
||||
ldnum1=`echo $ldver | cut -d . -f1`
|
||||
ldnum2=`echo $ldver | cut -d . -f2`
|
||||
ldnum=`(expr $ldnum1 "*" 100 + $ldnum2) 2>/dev/null`
|
||||
|
||||
if test "$ldnum" -ge "227"; then
|
||||
have_nocrossrefs_to="#define HAVE_NOCROSSREFS_TO"
|
||||
else
|
||||
have_nocrossrefs_to="#undef HAVE_NOCROSSREFS_TO"
|
||||
fi
|
||||
|
||||
if [ -z "$gccver" ]; then
|
||||
echo "[WARNING] The compiler you must use ($CC) is not in your path!"
|
||||
echo "[WARNING] this may cause your build to fail since we cannot do the"
|
||||
|
@ -4600,6 +4611,9 @@ ${app_lcd_height}
|
|||
#define ROCKBOX_BINARY_PATH "${bindir}"
|
||||
#define ROCKBOX_LIBRARY_PATH "${libdir}"
|
||||
|
||||
/* linker feature test macro for validating cross-section references */
|
||||
${have_nocrossrefs_to}
|
||||
|
||||
#endif /* __BUILD_AUTOCONF_H */
|
||||
EOF
|
||||
|
||||
|
|
Loading…
Reference in a new issue