[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Anyone running -current?
In article <20130529110845.GA29329%mail.duskware.de@localhost>,
Martin Husemann <martin%duskware.de@localhost> wrote:
>So here are, finaly, the details of the story:
>Newer gcc has this in config/elfos.h:
>/* A C statement (sans semicolon) to output to the stdio stream STREAM
> any text necessary for declaring the name of an external symbol
> named NAME which is referenced in this compilation but not defined.
> It is needed to properly support non-default visibility. */
>#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
> default_elf_asm_output_external (FILE, DECL, NAME)
>This boils down to putting a statement like
> .protected _lc_global_locale
>into every assembler file that uses _lc_global_locale but does not define
>it. At the ELF level, this means the symbol looks like:
> Num: Value Size Type Bind Vis Ndx Name
> 50: 00000000 0 NOTYPE GLOBAL PROTECTED UND _lc_global_locale
> 50: 00000000 0 NOTYPE GLOBAL DEFAULT UND _lc_global_locale
>And ld would do the right thing if we had it properly marked protected.
>Basically this means that gcc 4.1 is not able to use symbols with non default
>visibility - which is a pain, as we use it besides the case at hand also
>for ld.elf_so (at least).
>Anyway, I don't feel like backporting that change to gcc 4.1. For unbreaking
>-current it will be enough to #ifndef __VAX__ the __dso_protected declaration
>and document it in doc/HACKS.
>If anyone else would like to fight this at the gcc level, please speak up!
We really need to get rid of gcc-4.1 and move to a newer one. Keeping 4.1
around and deferring the work is not going to work forever.
Main Index |
Thread Index |