public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "adivilceanu at yahoo dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/54791] AIX-only: Constructors are not called in main program.
Date: Fri, 02 Nov 2012 14:49:00 -0000	[thread overview]
Message-ID: <bug-54791-4-0NgiJDAw0c@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-54791-4@http.gcc.gnu.org/bugzilla/>


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54791

--- Comment #3 from Adi <adivilceanu at yahoo dot com> 2012-11-02 14:49:03 UTC ---
After more investigation I saw that I managed to get the constructors called by
removing the "inline" keyword from just one constructor of a class that resides
in my master header.

>From my -Wl,-debug linker options I see that this particular constructor name
is used to generate the dynamic initialization in almost every object file.
See debug.txt attached for more details. Look for
"_GLOBAL__I_65535_0__ZN5TraceD2Ev".


Do you know why would that be?   
Is this a bug ?
Do you know why on Linux with the same compiler version and same code is not
happening?

I have around 1000 member functions that are declared "inline" across various
classes.

Do you know if there are any know issues with inline and constructors? Any
compiler options I should be aware of? I am not using any optimization (yet ..
I am planning to). 

Now after I did this I am still having some other problems. Some object seemed
are not initialized properly.  I am still suspecting the other inlines might be
the culprit.

Any ideas/suggestions would be appreciated.






________________________________
 From: dje at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>
To: adivilceanu@yahoo.com 
Sent: Wednesday, October 3, 2012 4:46 PM
Subject: [Bug target/54791] AIX-only: Constructors are not called in main
program.


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54791

--- Comment #2 from David Edelsohn <dje at gcc dot gnu.org> 2012-10-03 13:46:44
UTC ---
Constructors are working because they work without your big header.  I would
try using divide and conquer techniques to reduce the big header and find out
what is interfering with constructors.  It gives all appearances that it is due
to the user code.

Static constructors and destructors are run by functions generated at link
time.  A programmer wrapper around AIX ld called "collect2" scans object files
and libraries for constructors and generates functions that are invoked by AIX
linker -binitfini feature.  You can add -Wl,-debug to the link line to see the
way the AIX linker is invoked and see the helper function.

Is something in the big header changing the mangled names of constructors and
destructors so that they do not use the standard pattern?  Or inserting some
illegal character like dollar sign ($)?


  parent reply	other threads:[~2012-11-02 14:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-03  9:20 [Bug c++/54791] New: " adivilceanu at yahoo dot com
2012-10-03  9:40 ` [Bug target/54791] " paolo.carlini at oracle dot com
2012-10-03 13:47 ` dje at gcc dot gnu.org
2012-11-02 14:49 ` adivilceanu at yahoo dot com [this message]
2012-11-02 14:52 ` adivilceanu at yahoo dot com
2012-11-03  6:21 ` adivilceanu at yahoo dot com
2012-11-03  6:24 ` adivilceanu at yahoo dot com
2012-11-03 13:49 ` dje at gcc dot gnu.org
2012-11-03 19:15 ` adivilceanu at yahoo dot com
2012-11-03 22:48 ` dje at gcc dot gnu.org
2012-11-05 14:34 ` adivilceanu at yahoo dot com
2012-11-05 18:55 ` dje at gcc dot gnu.org
2012-11-05 21:14 ` adivilceanu at yahoo dot com
2012-11-06 14:46 ` dje at gcc dot gnu.org
2012-11-06 16:23 ` adivilceanu at yahoo dot com
2012-11-06 21:50 ` adivilceanu at yahoo dot com
2012-11-07  1:27 ` dje at gcc dot gnu.org
2012-11-07 14:46 ` adivilceanu at yahoo dot com
2012-11-07 15:25 ` adivilceanu at yahoo dot com
2012-11-07 22:15 ` dje at gcc dot gnu.org
2012-11-13  8:21 ` adivilceanu at yahoo dot com
2012-11-13  8:30 ` adivilceanu at yahoo dot com
2012-11-13 14:03 ` dje at gcc dot gnu.org
2012-11-13 14:09 ` adivilceanu at yahoo dot com
2012-11-14 14:20 ` dje at gcc dot gnu.org
2012-11-27 15:54 ` adivilceanu at yahoo dot com
2012-11-27 18:55 ` adivilceanu at yahoo dot com
2012-11-27 19:01 ` adivilceanu at yahoo dot com
2012-11-27 20:42 ` dje at gcc dot gnu.org
2012-11-28 14:01 ` adivilceanu at yahoo dot com
2012-11-28 19:35 ` dje at gcc dot gnu.org
2012-11-29  9:35 ` adivilceanu at yahoo dot com
2012-11-29  9:44 ` adivilceanu at yahoo dot com
2012-12-01 21:42 ` dje at gcc dot gnu.org
2015-03-18 12:42 ` dje at gcc dot gnu.org
2015-03-18 12:49 ` dje at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-54791-4-0NgiJDAw0c@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).