Port-vax archive

[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.  */
>
>#ifndef ASM_OUTPUT_EXTERNAL
>#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
>  default_elf_asm_output_external (FILE, DECL, NAME)
>#endif
>
>
>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
>
>instead of:
>
>   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.

christos




Home | Main Index | Thread Index | Old Index