This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Android Native GCC 4.9.2 Build Fails at Dynamic libgcc


On Tue, Jan 6, 2015 at 9:11 AM, Cyd Haselton <chaselton@gmail.com> wrote:
> On Tue, Jan 6, 2015 at 3:34 AM, Andrew Haley <aph@redhat.com> wrote:
>> On 05/01/15 20:12, Cyd Haselton wrote:
>>>>>>
>>>>>> If you run that command with the additional argument "-Wl,-Map,mapfile"
>>>>>> you'll get a link map (called "mapfile") which should tell you where
>>>>>> dlopen is linked from.
>>>>>>
>>>>>> Andrew.
>>>>>>
>>>>> Neither -Wl,-Map,mapfile, -Wl,-Map mapfile or -Wl,-Map=mapfile
>>>>> generates said link map
>>>>
>>>>
>>>> Update: The link map isn't generated in the 4.9 build dir because...I
>>>> suspect...of the original error.  The link map IS generated in the 4.8
>>>> build dir, but grep "dlopen" mapfile yields zero results.  I'm running
>>>> make clean && make to see if more helpfulndata is generated
>>>
>>> And nada.  Zilch.  To be on the safe side I cat-ed through the map
>>> file...no reference to dlopen anywhere.  And, as mentioned earlier, no
>>> mapfile is generated for the 4.9 libgcc build.
>>> I'm going to go back a step and add the -Wl,-Map=mapfile flag to both
>>> the 4.9 and 4.8 gcc Makefiles and run make clean && make, but if you
>>> or anyone else watching this email thread have a better suggestion
>>> please let me know.
>>
>> Aha!  So 4.8 doesn't call dlopen(), but 4.9 does.
>>
>> Which input file in 4.9 contains the call to dlopen() ?  See if
>> it is different in 4.8.
>>
>> Andrew.
>>
> Assuming you're referring to the 4.8/4.9 libgcc build and not the
> 4.8/4.9 gcc build, how do I tell which input file contains the call to
> dlopen() if a mapfile isn't generated for the 49 libgcc link?

FYI, Brian suggested an answer to the above question:

>I'd start with

>nm *.o |grep dlopen

I've run

grep -r dlopen .

and Brian's command (just for kicks) and none of the libgcc input
files in either the 4.9 or 4.8 build directories contains a call to
dlopen.

So...back to the original question:  If...for the libgcc build... 4.8
doesn't call dlopen but 4.9 does, and none of the libgcc input files
for either version contains a call to dlopen and it is not possible to
generate a mapfile for the 4.9 libgcc link, how do I figure out what
in 4.9 is calling dlopen?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]