This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

LTO symtabs inconsistency


    Hello team,

  Previously, I have noticed that symbols in LTO symtabs don't have
underscores.  Now I have found that some of them do.  These are the native
symbols from gcc/intl.o during LTO-enabled bootstrap stage2:

> $ nm intl.o
> 00000000 b .bss
> 00000000 d .data
> 00000000 N .debug_abbrev
> 00000000 N .debug_aranges
> 00000000 N .debug_info
> 00000000 N .debug_line
> 00000000 N .debug_loc
> 00000000 N .debug_str
> 00000000 r .eh_frame
> 00000000 r .gnu.lto_.cgraph.e2eb6ce9
> 00000000 r .gnu.lto_.decls.e2eb6ce9
> 00000000 r .gnu.lto_.jmpfuncs.e2eb6ce9
> 00000000 r .gnu.lto_.opts
> 00000000 r .gnu.lto_.pureconst.e2eb6ce9
> 00000000 r .gnu.lto_.refs.e2eb6ce9
> 00000000 r .gnu.lto_.statics.e2eb6ce9
> 00000000 r .gnu.lto_.symtab.e2eb6ce9
> 00000000 r .gnu.lto_.vars.e2eb6ce9
> 00000000 r .gnu.lto_gcc_gettext_width.e2eb6ce9
> 00000000 r .gnu.lto_gcc_init_libintl.e2eb6ce9
> 00000000 r .gnu.lto_get_spaces.e2eb6ce9
> 00000000 r .rdata
> 00000000 t .text
>          U ___chkstk_ms
> 00000001 C ___gnu_lto_v1
> 00000000 D _close_quote
> 00000110 T _gcc_gettext_width
> 00000000 T _gcc_init_libintl
> 00000180 T _get_spaces
>          U _libintl_bindtextdomain
>          U _libintl_gettext
>          U _libintl_textdomain
> 00000004 B _locale_encoding
> 00000000 B _locale_utf8
>          U _mbstowcs
>          U _memset
>          U _nl_langinfo
> 00000004 D _open_quote
>          U _setlocale
>          U _strcasecmp
>          U _wcswidth
>          U _xmalloc

  This is i686-pc-cygwin, btw, and PE-COFF object format.  Here is the
contents of the LTO symtab from the file:

> $ objdump -s -j .gnu.lto_.symtab.e2eb6ce9 intl.o
> 
> intl.o:     file format pe-i386
> 
> Contents of section .gnu.lto_.symtab.e2eb6ce9:
>  0000 6763635f 696e6974 5f6c6962 696e746c  gcc_init_libintl
>  0010 00000000 00000000 00000000 70000000  ............p...
>  0020 6763635f 67657474 6578745f 77696474  gcc_gettext_widt
>  0030 68000000 00000000 00000000 00740000  h............t..
>  0040 00676574 5f737061 63657300 00000000  .get_spaces.....
>  0050 00000000 0000007b 0000006e 6c5f6c61  .......{...nl_la
>  0060 6e67696e 666f0000 02000000 00000000  nginfo..........
>  0070 00009600 00005f6c 6962696e 746c5f74  ......_libintl_t
>  0080 65787464 6f6d6169 6e000002 00000000  extdomain.......
>  0090 00000000 00a60000 005f6c69 62696e74  ........._libint
>  00a0 6c5f6269 6e647465 7874646f 6d61696e  l_bindtextdomain
>  00b0 00000200 00000000 00000000 a9000000  ................
>  00c0 7365746c 6f63616c 65000002 00000000  setlocale.......
>  00d0 00000000 00af0000 00776373 77696474  .........wcswidt
>  00e0 68000002 00000000 00000000 00b50000  h...............
>  00f0 006d6273 746f7763 73000002 00000000  .mbstowcs.......
>  0100 00000000 00bd0000 00786d61 6c6c6f63  .........xmalloc
>  0110 00000200 00000000 00000000 cf000000  ................
>  0120 6f70656e 5f71756f 74650000 00000000  open_quote......
>  0130 00000000 0000d500 0000636c 6f73655f  ..........close_
>  0140 71756f74 65000000 00000000 00000000  quote...........
>  0150 00da0000 006c6f63 616c655f 656e636f  .....locale_enco
>  0160 64696e67 00000000 00000000 00000000  ding............
>  0170 df000000 6c6f6361 6c655f75 74663800  ....locale_utf8.
>  0180 00000000 00000000 000000e1 000000    ...............

  For some reason, the two libintl symbols have underscores.  gettext is
missing altogether because we have a builtin for it, but I don't think we do
for (bind)textdomain.

  Is this expected?

    cheers,
      DaveK


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]