Subject: Re: gcc 3.3.3, const symbols and shared libraries
From: "Gerrit P. Haase" <[email-masked]>
To: Norton Allen <[email-masked]>
Cc: [email-masked]
Date: Tue, 29 Mar 2005 18:19:05 +0200

Norton Allen wrote:

> Gerrit P. Haase wrote:
> 
>> Norton Allen wrote:
>>
>>> I have seen the discussions at
>>>
>>> http://sourceware.org/ml/cygwin/2004-09/msg01101.html
>>>
>>> referenced at
>>>
>>> http://cygwin.com/ml/cygwin/2005-03/msg00048.html
>>>
>>> regarding gcc 3.3.3's placement of const symbols into
>>> rdata which then cannot be properly initialized.
>>> This problem seems pretty fundamental. Can anyone
>>> tell me whether there has been any followup to
>>> this? Is it considered a cygwin problem or a
>>> gcc problem? Has it been addressed in 3.4.1?
>>> What are developers doing? Going back to 3.3.1?
>>
>>
>>
>> The rule is to not use const symbols in shared libraries
>> if they are not really const;)
> 
> 
> What do you mean by "really?" These are const from
> the standpoint of "defined once and never changed
> thereafter," but they are not finally defined until
> the link against shared libraries.
> 
> It's currently an issue because it requires changes
> to quite a few packages. In the past week, I had to
> remove const declarations from glib-2.6.3 and
> gtk+-2.6.4 to get them to compile. Are these changes
> that are uniquely required by cygwin, or are these
> going to be required for all gcc platforms?
> 
> -Norton

I needed to apply these changes too (I'm the maintainer of glib2),
I think it is required for those platforms coming with gcc in
question as default compiler, yes.  However, only parts where
libpopt is involved where affected, the usual way oppt was used
doesn't work, at least with Cygwin.

Gerrit
-- 
=^..^=

Action Soccer: http://www.action-soccer.de/?lv=de&id=505
(german online game)

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/