Support the use of the STT_COMMON type. (In source and object files only at the moment)

This commit is contained in:
Nick Clifton 2007-10-16 14:42:15 +00:00
parent 62c018fe4a
commit 504b7d2026
24 changed files with 227 additions and 38 deletions

View File

@ -1,3 +1,15 @@
2007-10-16 Nick Clifton <nickc@redhat.com>
* configure.in (--enable-elf-stt-common): New configure
option. If enabled then the tools can generate symbols with
the ELF STT_COMMON type.
* config.in: Regenerate.
* configure: Regenerate.
* elf.c (swap_out_syms): If USE_STT_COMMON is defined then set
the type of emitted common symbols to STT_COMMON.
* elfcode.h (elf_slurp_symbol_table): Accept STT_COMMON symbol
types.
2007-10-15 Alan Modra <amodra@bigpond.net.au>
* coff-arm.c (arm_emit_base_file_entry): Check fwrite return value.

View File

@ -285,6 +285,9 @@
/* Define if we should default to creating read-only plt entries */
#undef USE_SECUREPLT
/* Define if we may generate symbols with ELF's STT_COMMON type */
#undef USE_STT_COMMON
/* Version number of package */
#undef VERSION

68
bfd/configure vendored
View File

@ -1012,6 +1012,7 @@ Optional Features:
--enable-targets alternative target configurations
--enable-commonbfdlib build shared BFD/opcodes/libiberty library
--enable-secureplt Default to creating read-only plt entries
--enable-elf-stt-common Allow the generation of ELF symbols with the STT_COMMON type
--enable-werror treat compile warnings as errors
--enable-build-warnings enable build-time compiler warnings
--enable-maintainer-mode enable make rules and dependencies not useful
@ -4665,13 +4666,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:4668: $ac_compile\"" >&5)
(eval echo "\"\$as_me:4669: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
(eval echo "\"\$as_me:4671: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval echo "\"\$as_me:4672: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
(eval echo "\"\$as_me:4674: output\"" >&5)
(eval echo "\"\$as_me:4675: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@ -5726,7 +5727,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
echo '#line 5729 "configure"' > conftest.$ac_ext
echo '#line 5730 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@ -6826,11 +6827,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:6829: $lt_compile\"" >&5)
(eval echo "\"\$as_me:6830: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:6833: \$? = $ac_status" >&5
echo "$as_me:6834: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -7148,11 +7149,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7151: $lt_compile\"" >&5)
(eval echo "\"\$as_me:7152: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:7155: \$? = $ac_status" >&5
echo "$as_me:7156: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -7253,11 +7254,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7256: $lt_compile\"" >&5)
(eval echo "\"\$as_me:7257: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:7260: \$? = $ac_status" >&5
echo "$as_me:7261: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -7308,11 +7309,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7311: $lt_compile\"" >&5)
(eval echo "\"\$as_me:7312: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:7315: \$? = $ac_status" >&5
echo "$as_me:7316: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -10105,7 +10106,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 10108 "configure"
#line 10109 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -10205,7 +10206,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 10208 "configure"
#line 10209 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -10449,7 +10450,8 @@ echo "$as_me: error: bad value ${enableval} for 64-bit-bfd option" >&2;}
esac
else
want64=false
fi; # Check whether --enable-targets or --disable-targets was given.
fi;
# Check whether --enable-targets or --disable-targets was given.
if test "${enable_targets+set}" = set; then
enableval="$enable_targets"
case "${enableval}" in
@ -10460,7 +10462,8 @@ echo "$as_me: error: enable-targets option must specify target names or 'all'" >
no) enable_targets= ;;
*) enable_targets=$enableval ;;
esac
fi; # Check whether --enable-commonbfdlib or --disable-commonbfdlib was given.
fi;
# Check whether --enable-commonbfdlib or --disable-commonbfdlib was given.
if test "${enable_commonbfdlib+set}" = set; then
enableval="$enable_commonbfdlib"
case "${enableval}" in
@ -10471,6 +10474,7 @@ echo "$as_me: error: bad value ${enableval} for BFD commonbfdlib option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
fi;
# Check whether --with-mmap or --without-mmap was given.
if test "${with_mmap+set}" = set; then
withval="$with_mmap"
@ -10506,7 +10510,6 @@ fi
DEBUGDIR=${libdir}/debug
# Check whether --with-separate-debug-dir or --without-separate-debug-dir was given.
if test "${with_separate_debug_dir+set}" = set; then
withval="$with_separate_debug_dir"
@ -10514,6 +10517,37 @@ if test "${with_separate_debug_dir+set}" = set; then
fi;
# Check to see if we should allow the generation of
# symbols with the ELF standard's STT_COMMON type.
# Check whether --enable-elf-stt-common or --disable-elf-stt-common was given.
if test "${enable_elf_stt_common+set}" = set; then
enableval="$enable_elf_stt_common"
case "${enableval}" in
yes) want_elf_stt_common=true ;;
no) want_elf_stt_common=false ;;
*) { { echo "$as_me:$LINENO: error: bad value ${enableval} for ELF STT_COMMON option" >&5
echo "$as_me: error: bad value ${enableval} for ELF STT_COMMON option" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
# We have to choose a default behaviour. For native builds we could
# test whether the loader supports the STT_COMMON type. For cross
# toolchains we default to assuming that they are not supported.
if test "$cross_compiling" != yes; then
want_elf_stt_common=false
else
# XXX FIXME: Add code to test the loader here.
want_elf_stt_common=false
fi
fi; if test $want_elf_stt_common = true; then
cat >>confdefs.h <<\_ACEOF
#define USE_STT_COMMON 1
_ACEOF
fi
# Check whether --with-pkgversion or --without-pkgversion was given.

View File

@ -31,6 +31,7 @@ AC_ARG_ENABLE(64-bit-bfd,
no) want64=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
esac],[want64=false])dnl
AC_ARG_ENABLE(targets,
[ --enable-targets alternative target configurations],
[case "${enableval}" in
@ -39,6 +40,7 @@ AC_ARG_ENABLE(targets,
no) enable_targets= ;;
*) enable_targets=$enableval ;;
esac])dnl
AC_ARG_ENABLE(commonbfdlib,
[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
[case "${enableval}" in
@ -46,6 +48,7 @@ AC_ARG_ENABLE(commonbfdlib,
no) commonbfdlib=false ;;
*) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
esac])dnl
AC_ARG_WITH(mmap,
[ --with-mmap try using mmap for BFD input files if available],
[case "${withval}" in
@ -67,13 +70,32 @@ if test $use_secureplt = true; then
fi
DEBUGDIR=${libdir}/debug
AC_ARG_WITH(separate-debug-dir,
AS_HELP_STRING([--with-separate-debug-dir=DIR],
[Look for global separate debug info in DIR [[default=LIBDIR/debug]]]),
[DEBUGDIR="${withval}"])
AC_SUBST(DEBUGDIR)
# Check to see if we should allow the generation of
# symbols with the ELF standard's STT_COMMON type.
AC_ARG_ENABLE(elf-stt-common,
[ --enable-elf-stt-common Allow the generation of ELF symbols with the STT_COMMON type],
[case "${enableval}" in
yes) want_elf_stt_common=true ;;
no) want_elf_stt_common=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for ELF STT_COMMON option) ;;
esac],
# We have to choose a default behaviour. For native builds we could
# test whether the loader supports the STT_COMMON type, but that would
# mean that built binaries could not be exported to older systems where
# the loader does not support it. So by default we always choose to
# disable this feature.
want_elf_stt_common=false)dnl
if test $want_elf_stt_common = true; then
AC_DEFINE(USE_STT_COMMON, 1,
[Define if we may generate symbols with ELF's STT_COMMON type])
fi
ACX_PKGVERSION([GNU Binutils])
ACX_BUGURL([http://www.sourceware.org/bugzilla/])

View File

@ -6297,7 +6297,11 @@ Unable to find equivalent output section for symbol '%s' from section '%s'"),
sym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION);
}
else if (bfd_is_com_section (syms[idx]->section))
sym.st_info = ELF_ST_INFO (STB_GLOBAL, type);
sym.st_info = ELF_ST_INFO (STB_GLOBAL,
#ifdef USE_STT_COMMON
type == STT_OBJECT ? STT_COMMON :
#endif
type);
else if (bfd_is_und_section (syms[idx]->section))
sym.st_info = ELF_ST_INFO (((flags & BSF_WEAK)
? STB_WEAK

View File

@ -1323,6 +1323,10 @@ elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bfd_boolean dynamic)
case STT_FUNC:
sym->symbol.flags |= BSF_FUNCTION;
break;
case STT_COMMON:
/* FIXME: Do we have to put the size field into the value field
as we do with symbols in SHN_COMMON sections (see above) ? */
/* Fall through. */
case STT_OBJECT:
sym->symbol.flags |= BSF_OBJECT;
break;

View File

@ -1,3 +1,10 @@
2007-10-16 Nick Clifton <nickc@redhat.com>
* binutils-all/readelf.ss: Accept COMMON in readelf's output.
* binutils-all/readelf.ss-64: Likewise.
* binutils-all/readelf.ss-mips: Likewise.
* binutils-all/readelf.ss-tmips: Likewise.
2007-08-30 Nick Clifton <nickc@redhat.com>
* binutils-all/dumptest.s: New test file.

View File

@ -15,4 +15,4 @@ Symbol table '.symtab' contains .* entries:
.* .: 00000000 0 NOTYPE GLOBAL DEFAULT 1 text_symbol
..: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
..: 00000000 0 NOTYPE GLOBAL DEFAULT [34] data_symbol
..: 00000004 4 OBJECT GLOBAL DEFAULT ( COM|ANSI_COM) common_symbol
..: 00000004 4 (COMMON|OBJECT) GLOBAL DEFAULT ( COM|ANSI_COM) common_symbol

View File

@ -10,4 +10,4 @@ Symbol table '.symtab' contains .* entries:
.* .: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 text_symbol
.: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
.: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 3 data_symbol
.: 0000000000000004 4 OBJECT GLOBAL DEFAULT COM common_symbol
.: 0000000000000004 4 (COMMON|OBJECT) GLOBAL DEFAULT COM common_symbol

View File

@ -12,4 +12,4 @@ Symbol table '.symtab' contains 12 entries:
8: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
9: 00000000 0 OBJECT GLOBAL DEFAULT . data_symbol
10: 00000000 0 NOTYPE LOCAL DEFAULT . static_data_symbol
11: 00000004 4 OBJECT GLOBAL DEFAULT (PRC|COM) common_symbol
11: 00000004 4 (COMMON|OBJECT) GLOBAL DEFAULT (PRC|COM) common_symbol

View File

@ -12,4 +12,4 @@ Symbol table '.symtab' contains 12 entries:
8: 00000000 0 OBJECT GLOBAL DEFAULT 1 text_symbol
9: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
10: 00000000 0 OBJECT GLOBAL DEFAULT 3 data_symbol
11: 00000004 4 OBJECT GLOBAL DEFAULT (PRC|COM) common_symbol
11: 00000004 4 (COMMON|OBJECT) GLOBAL DEFAULT (PRC|COM) common_symbol

View File

@ -1,3 +1,10 @@
2007-10-16 Nick Clifton <nickc@redhat.com>
* config/obj-elf.c (obj_elf_type): Accept "common" as a valid
symbol type.
* doc/as.texinfo (.type): Document the types accepted by the
type pseudo op, including "common".
2007-10-15 Peter Bergner <bergner@vnet.ibm.com>
* config/tc-ppc.c (ppc_setup_opcodes): Verify instructions are sorted

View File

@ -1587,6 +1587,33 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
else if (strcmp (typename, "notype") == 0
|| strcmp (typename, "STT_NOTYPE") == 0)
;
else if (strcmp (typename, "common") == 0
|| strcmp (typename, "STT_COMMON") == 0)
{
type = BSF_OBJECT;
if (! S_IS_COMMON (sym))
{
if (S_IS_VOLATILE (sym))
{
sym = symbol_clone (sym, 1);
S_SET_SEGMENT (sym, bfd_com_section_ptr);
S_SET_VALUE (sym, 0);
S_SET_EXTERNAL (sym);
symbol_set_frag (sym, &zero_address_frag);
S_CLEAR_VOLATILE (sym);
}
else if (S_IS_DEFINED (sym) || symbol_equated_p (sym))
as_bad (_("symbol '%s' is already defined"), S_GET_NAME (sym));
else
{
/* FIXME: Is it safe to just change the section ? */
S_SET_SEGMENT (sym, bfd_com_section_ptr);
S_SET_VALUE (sym, 0);
S_SET_EXTERNAL (sym);
}
}
}
#ifdef md_elf_symbol_type
else if ((type = md_elf_symbol_type (typename, sym, elfsym)) != -1)
;

View File

@ -1,3 +1,9 @@
2007-10-16 Nick Clifton <nickc@redhat.com>
* gas/elf/elf.exp: Accept COMMON in readelf's output.
* gas/elf/type.s: Add test of common type.
* gas/elf/type.e: Extend expected output.
2007-10-11 Nick Clifton <nickc@redhat.com>
* gas/elf/elf.exp (run_elf_list_test): Run section6 test.

View File

@ -4,9 +4,8 @@
.*: .*
Contents of section (\.data|\$DATA\$):
0000 73747238 00000000 00000000 00000000 str8.*
0010 7374726e 65773800 00000000 00000000 strnew8.*
0020 (73007400 72003100 36000000 00000000|00730074 00720031 00360000 00000000).*
0030 (33000000 32000000 00000000 00000000|00000033 00000032 00000000 00000000).*
0040 (36000000 00000000 34000000 00000000|00000000 00000036 00000000 00000034).*
0000 7374726e 65773800 00000000 00000000 strnew8.*
00.. (73007400 72003100 36000000 00000000|00730074 00720031 00360000 00000000).*
00.. (33000000 32000000 00000000 00000000|00000033 00000032 00000000 00000000).*
00.. (36000000 00000000 34000000 00000000|00000000 00000036 00000000 00000034).*
#pass

View File

@ -1,7 +1,4 @@
.data
.string "str8"
.balign 16
.string8 "strnew8"
.balign 16

View File

@ -2,3 +2,4 @@
.: 0+0 1 OBJECT LOCAL DEFAULT . object
.: 0+1 1 TLS LOCAL DEFAULT . tls_object
.: 0+2 1 NOTYPE LOCAL DEFAULT . notype
..: 0+1 1 (COMMON|OBJECT) GLOBAL DEFAULT COM common

View File

@ -16,3 +16,5 @@ tls_object:
.size notype,1
notype:
.byte 0x0
.comm common, 1
.type common,STT_COMMON

View File

@ -1,3 +1,8 @@
2007-10-16 Nick Clifton <nickc@redhat.com>
* lf-elfcomm/elfcomm.exp: Add tests of STT_COMMON symbol
generation.
2007-10-12 Joseph Myers <joseph@codesourcery.com>
* ld-mips-elf/multi-got-hidden-1.d,

View File

@ -53,12 +53,11 @@ proc dump_common1 { testname } {
global exec_output
global READELF
send_log "$READELF -s tmpdir/common1.o | grep foo\n"
set exec_output [run_host_cmd "readelf" "-s tmpdir/common1.o | grep foo"]
send_log "$READELF --syms tmpdir/common1.o | grep foo\n"
set exec_output [run_host_cmd "readelf" "--syms tmpdir/common1.o | grep foo"]
if { ![regexp "(\[ \]*)(\[0-9\]+):(\[ \]*)(\[0\]*)80(\[ \]+)4(\[ \]+)OBJECT(\[ \]+)GLOBAL(\[ \]+)DEFAULT(\[ \]+)(PRC\\\[0xff03\\\]|COM|SCOM)(\[ \]+)_?foo2" $exec_output]
|| ![regexp "(\[ \]*)(\[0-9\]+):(\[ \]*)(\[0-9\]+)(\[ \]+)21(\[ \]+)OBJECT(\[ \]+)GLOBAL(\[ \]+)DEFAULT(\[ \]+)(\[0-9\]+)(\[ \]+)_?foo1" $exec_output] } {
send_log "$exec_output\n"
if { ![regexp "(\[ \]*)(\[0-9\]+):(\[ \]*)(\[0\]*)80(\[ \]+)4(\[ \]+)(COMMON|OBJECT)(\[ \]+)GLOBAL(\[ \]+)DEFAULT(\[ \]+)(PRC\\\[0xff03\\\]|COM|SCOM)(\[ \]+)_?foo2" $exec_output]
|| ![regexp "(\[ \]*)(\[0-9\]+):(\[ \]*)(\[0-9\]+)(\[ \]+)21(\[ \]+)OBJECT(\[ \]+)GLOBAL(\[ \]+)DEFAULT(\[ \]+)(\[0-9\]+)(\[ \]+)_?foo1" $exec_output] } {
verbose $exec_output
fail $testname
return 0
@ -67,7 +66,49 @@ proc dump_common1 { testname } {
return 1
}
if { ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/common1a.c tmpdir/common1a.o]
proc stt_common_test { options testname } {
global exec_output
global READELF
global ld
set options "$options tmpdir/common1a.o"
if { ! [ld_simple_link $ld tmpdir/common.exe $options] } {
unresolved $testname
return 0
}
send_log "$READELF --syms tmpdir/common.exe | grep foo\n"
set exec_output [run_host_cmd "readelf" "--syms tmpdir/common.exe | grep foo"]
if {![regexp "(\[ \]*)(\[0-9\]+):(\[ \]*)(\[0-9\]+)(\[ \]+)(\[0-9\]+)(\[ \]+)COMMON(\[ \]+)GLOBAL(\[ \]+)DEFAULT(\[ \]+)(\[0-9\]+)(\[ \]+)_?foo2" $exec_output] } {
fail $testname
return 0
}
pass $testname
return 1
}
# Check to see if the assembler is generating symbols with the STT_COMMON type.
proc assembler_generates_commons {} {
global exec_output
global READELF
verbose "Check to see if STT_COMMON symbols are being generated:"
set exec_output [run_host_cmd "readelf" "--syms tmpdir/common1a.o | grep foo"]
if { ![regexp "(\[ \]*)(\[0-9\]+):(\[ \]*)(\[0\]*)80(\[ \]+).(\[ \]+)COMMON(\[ \]+)GLOBAL(\[ \]+)DEFAULT(\[ \]+)(PRC\\\[0xff03\\\]|COM|SCOM)(\[ \]+)_?foo2" $exec_output] } {
verbose "STT_COMMON not generated"
return 0
}
verbose "STT_COMMON's are generated"
return 1
}
if { ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/common1a.c tmpdir/common1a.o]
|| ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/common1b.c tmpdir/common1b.o] } {
unresolved $test1
return
@ -90,7 +131,6 @@ if {[istarget mips*-*-*]} {
pass $test1w1
}
} else {
pass $test1w1
if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output]
|| ![regexp "Warning: size of symbol \`_?foo1\' changed from 2 in tmpdir/common1a.o to 21 in tmpdir/common1b.o" $link_output] } {
fail $test1w1
@ -117,3 +157,16 @@ if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/comm
if { [dump_common1 $test1c2] } {
pass $test1c2
}
#
# The following tests are for when we are generating STT_COMMON symbols only.
#
if { ![assembler_generates_commons] } {
return
}
stt_common_test "-static -e 0" "static link of common symbols"
stt_common_test "-shared" "shared link of common symbols"
stt_common_test "-pie" "position independent link of common symbols"

View File

@ -41,5 +41,6 @@ Hex dump of section '\.text\.mixed':
0x00000010 0000002b 00090009 .*
Hex dump of section '\.cranges':
.*
0x00000000 00000000 0000000c 00030000 000c0000 .*
0x00000010 00080001 00000014 00000004 0002 .*

View File

@ -53,6 +53,7 @@ Hex dump of section '\.text\.mixed':
0x00000050 6ff0fff0 6ff0fff0 6ff0fff0 .*
Hex dump of section '\.cranges':
.*
0x00000000 00000000 0000000c 00030000 000c0000 .*
0x00000010 00080001 00000014 00000004 00020000 .*
0x00000020 00180000 00100003 00000028 00000014 .*

View File

@ -303,6 +303,7 @@ Symbol table '\.symtab' contains 134 entries:
133: 00000000 0 <processor specific>: 13 GLOBAL DEFAULT UND unresolved8
Hex dump of section '\.text':
.*
0x00000000 6ff0fff0 6ff0fff0 cc0000a0 cc000140 .*
0x00000010 cc000140 cc000140 cc000280 cc0001e0 .*
0x00000020 cc0000a0 cc0000a0 cc000280 cc000140 .*
@ -319,6 +320,7 @@ Hex dump of section '\.text':
0x000000d0 6ff0fff0 .*
Hex dump of section '\.data':
.*
0x00000000 00000000 00000000 00000008 00000000 .*
0x00000010 00000000 00000000 00000000 00000000 .*
0x00000020 00000028 00000000 00000000 00000000 .*

View File

@ -305,6 +305,7 @@ Symbol table '\.symtab' contains 134 entries:
133: 0000000000000000 0 <processor specific>: 13 GLOBAL DEFAULT UND unresolved8
Hex dump of section '\.text':
.*
0x00000000 6ff0fff0 6ff0fff0 cc0000a0 cc000140 .*
0x00000010 cc000140 cc000140 cc000280 cc0001e0 .*
0x00000020 cc0000a0 cc0000a0 cc000280 cc000140 .*
@ -321,6 +322,7 @@ Hex dump of section '\.text':
0x000000d0 6ff0fff0 6ff0fff0 6ff0fff0 .*
Hex dump of section '\.data':
.*
0x00000000 00000000 00000000 00000008 00000000 .*
0x00000010 00000000 00000000 00000000 00000000 .*
0x00000020 00000028 00000000 00000000 00000000 .*