environ is autofiltered from dll export list?
Dave Korn
dave.korn@artimi.com
Thu May 25 03:18:00 GMT 2006
On 24 May 2006 17:20, Christopher Faylor wrote:
> On Wed, May 24, 2006 at 01:55:53PM +0100, Pedro Alves wrote:
>> Dave Korn wrote:
>>> On 23 May 2006 22:02, Pedro Alves wrote:
>> Ok, I can provide a patch for that, but I would like to understand the
>> environ part of my question first.
Can't say I understand what it's need for myself, but ...
>>> char** environ is explicitly disabled from dll exporting in
>> pe-dll.c's autofilters. Why is it? I tried to look in the archives,
>>> back when the auto-importing was introduced, but couldn't find the
>>> rationale. Should every dll have its own environ?
>>
>> I think this was needed when there was no auto-importing, and cygwin
>> defined environ as __cygwin_environ:
>> http://www.zsh.org/mla/workers/2000/msg03158.html
>>
>> Is it still needed? In that case I will have to conditionally compile
>> out that part for arm-wince-pe target.
>
> Are you asking if cygwin still exports environ as __cygwin_environ? If
> so, then the answer is "yes".
>
> cgf
... since it's still needed, you will indeed have to disable it for
arm-wince-pe. However, you shouldn't conditionally compile it out, because
that's the kind of non-multi-arch borkenness that we want to avoid; using
"#ifdef" in binutils makes --enable-targets=all fall down in very mysterious
and hard-to-isolate ways!
Take a look at pe_dll_id_target; you could add a flag in the pe_details_type
entries that control which arches use which autofilter names. Or you could do
it the other way round, and add flags to autofilter_entry_type to tell it
which arches should use or ignore that particular entry.
cheers,
DaveK
--
Can't think of a witty .sigline today....
More information about the Binutils
mailing list