public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables
@ 2015-02-13 21:36 michael.haubenwallner@ssi-schaefer.com
  2015-02-13 21:40 ` [Bug target/65058] " michael.haubenwallner@ssi-schaefer.com
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: michael.haubenwallner@ssi-schaefer.com @ 2015-02-13 21:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65058

            Bug ID: 65058
           Summary: AIX: missing extern decorations "[DS]" for functions
                    and "[RW]" for variables
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: michael.haubenwallner@ssi-schaefer.com
                CC: dje at gcc dot gnu.org
            Target: powerpc-ibm-aix

With gcc-4.2, references to external functions and variables were decorated
with "[DS]" and "[RW]", respectively.

With gcc-4.8, these decorations are missing, even though ASM_OUTPUT_EXTERNAL
(xcoff.h) pretends to add them.

$ cat > extref.c <<EOF
extern int externvar;
extern void externfunc(void);

int *localvar = &externvar;
void (*localfunc)(void) = externfunc;
EOF

$ gcc-4.2.4 -S extref.c -o - | grep extern
        .long   externvar[RW]
        .long   externfunc[DS]

$ gcc-4.8.4 -S extref.c -o - | grep extern
        .long   externvar
        .long   externfunc

The latter may lead to the linker error
  ld: 0711-317 ERROR: Undefined symbol: .externfunc
in the corner case when:
*) externfunc is imported via an Import File
*) externfunc() is used as direct function call
*) externfunc is used to initialize a function pointer
*) there is some larger number of symbols to import, so no small testcase.
My particular problem is with openssh linking against the Import File
libcrypto.so(shr.imp).


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables
  2015-02-13 21:36 [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables michael.haubenwallner@ssi-schaefer.com
@ 2015-02-13 21:40 ` michael.haubenwallner@ssi-schaefer.com
  2015-02-13 22:04 ` michael.haubenwallner@ssi-schaefer.com
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: michael.haubenwallner@ssi-schaefer.com @ 2015-02-13 21:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65058

--- Comment #1 from Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> ---
Probably this happens since gcc-4.3 due to this commit:
https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/varasm.c?r1=119764&r2=119763&pathrev=119764

Problem is that assemble_external() does not call ASM_OUTPUT_EXTERNAL any more
to add the decorations, before the symbol is written via ASM_OUTPUT_SYMBOL_REF.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables
  2015-02-13 21:36 [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables michael.haubenwallner@ssi-schaefer.com
  2015-02-13 21:40 ` [Bug target/65058] " michael.haubenwallner@ssi-schaefer.com
@ 2015-02-13 22:04 ` michael.haubenwallner@ssi-schaefer.com
  2015-02-16 15:33 ` [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[UA]" " dje at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: michael.haubenwallner@ssi-schaefer.com @ 2015-02-13 22:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65058

--- Comment #2 from Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> ---
Proposed patch: https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00885.html


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[UA]" for variables
  2015-02-13 21:36 [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables michael.haubenwallner@ssi-schaefer.com
  2015-02-13 21:40 ` [Bug target/65058] " michael.haubenwallner@ssi-schaefer.com
  2015-02-13 22:04 ` michael.haubenwallner@ssi-schaefer.com
@ 2015-02-16 15:33 ` dje at gcc dot gnu.org
  2015-02-16 15:42 ` dje at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: dje at gcc dot gnu.org @ 2015-02-16 15:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65058

--- Comment #3 from David Edelsohn <dje at gcc dot gnu.org> ---
Author: dje
Date: Mon Feb 16 15:33:09 2015
New Revision: 220737

URL: https://gcc.gnu.org/viewcvs?rev=220737&root=gcc&view=rev
Log:
2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
            David Edelsohn  <dje.gcc@gmail.com>

        PR target/65058
        * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
        mapping class to external variable or function reference.
        * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
        mapping class.

2015-02-16  David Eelsohn  <dje.gcc@gmail.com>

        PR target/53348
        * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
        ASM_WEAKEN_DECL if defined.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.c
    trunk/gcc/config/rs6000/xcoff.h


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[UA]" for variables
  2015-02-13 21:36 [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables michael.haubenwallner@ssi-schaefer.com
                   ` (2 preceding siblings ...)
  2015-02-16 15:33 ` [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[UA]" " dje at gcc dot gnu.org
@ 2015-02-16 15:42 ` dje at gcc dot gnu.org
  2015-02-16 23:04 ` dje at gcc dot gnu.org
  2015-02-24 21:27 ` haubi at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: dje at gcc dot gnu.org @ 2015-02-16 15:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65058

David Edelsohn <dje at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from David Edelsohn <dje at gcc dot gnu.org> ---
Fixed.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[UA]" for variables
  2015-02-13 21:36 [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables michael.haubenwallner@ssi-schaefer.com
                   ` (3 preceding siblings ...)
  2015-02-16 15:42 ` dje at gcc dot gnu.org
@ 2015-02-16 23:04 ` dje at gcc dot gnu.org
  2015-02-24 21:27 ` haubi at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: dje at gcc dot gnu.org @ 2015-02-16 23:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65058

--- Comment #5 from David Edelsohn <dje at gcc dot gnu.org> ---
Author: dje
Date: Mon Feb 16 23:03:33 2015
New Revision: 220744

URL: https://gcc.gnu.org/viewcvs?rev=220744&root=gcc&view=rev
Log:
        PR target/65058
        * gcc.target/powerpc/pr65058.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/powerpc/pr65058.c
Modified:
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[UA]" for variables
  2015-02-13 21:36 [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables michael.haubenwallner@ssi-schaefer.com
                   ` (4 preceding siblings ...)
  2015-02-16 23:04 ` dje at gcc dot gnu.org
@ 2015-02-24 21:27 ` haubi at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: haubi at gcc dot gnu.org @ 2015-02-24 21:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65058

--- Comment #6 from haubi at gcc dot gnu.org ---
Author: haubi
Date: Tue Feb 24 20:19:54 2015
New Revision: 220947

URL: https://gcc.gnu.org/viewcvs?rev=220947&root=gcc&view=rev
Log:
PR target/65058: Drop unused variable.

PR target/65058
* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/xcoff.h


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-02-24 20:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-13 21:36 [Bug target/65058] New: AIX: missing extern decorations "[DS]" for functions and "[RW]" for variables michael.haubenwallner@ssi-schaefer.com
2015-02-13 21:40 ` [Bug target/65058] " michael.haubenwallner@ssi-schaefer.com
2015-02-13 22:04 ` michael.haubenwallner@ssi-schaefer.com
2015-02-16 15:33 ` [Bug target/65058] AIX: missing extern decorations "[DS]" for functions and "[UA]" " dje at gcc dot gnu.org
2015-02-16 15:42 ` dje at gcc dot gnu.org
2015-02-16 23:04 ` dje at gcc dot gnu.org
2015-02-24 21:27 ` haubi at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).