Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 Mar 2013 16:45:28 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Andriy Gapon <avg@FreeBSD.org>, freebsd-hackers@FreeBSD.org
Subject:   Re: clang generated code sometimes confuses fbt
Message-ID:  <51337018.30000@FreeBSD.org>
In-Reply-To: <51325FB3.7080300@FreeBSD.org>
References:  <5132387E.8010808@FreeBSD.org> <51323C62.4040506@FreeBSD.org> <51325FB3.7080300@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-03-02 21:23, Dimitry Andric wrote:
> On 2013-03-02 18:52, Andriy Gapon wrote:
>> on 02/03/2013 19:35 Andriy Gapon said the following:
>>> Now, I am not quite sure why ctfconvert skips bpobj_iterate_impl in the
>>> clang-generated code.  Seems like some sort of a bug in ctfconvert.
>>
>> It seems that gcc and clang put different names for symbol of type FILE:
>> clang:
>> readelf -a -W /usr/obj/usr/src/sys/TRANT/bpobj.o| fgrep -w FILE
>>        1: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS
>> /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c
>>
>> gcc:
>> readelf -a -W /usr/obj/usr/src/sys/ODYSSEY/bpobj.o| fgrep -w FILE
>>        1: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS bpobj.c
>>
>> ctfconvert seems to compare this value with "bpobj.c" and so in the clang case
>> it doesn't recognize the static symbols.
>>
>> Does my analysis seem reasonable?
>
> Have you verified that ctfconvert does the right thing, if you modify
> the FILE symbol to have just the filename?

Debug log of ctfconvert operating on a gcc-compiled bpobj.o:

   http://www.andric.com/freebsd/ctfconvert-bpobj-gcc.log

The same, but on a clang-compiled bpobj.o:

   http://www.andric.com/freebsd/ctfconvert-bpobj-clang.log

This latter log does not change at all, if you change the FILE symbol to
just "bpobj.c".  So there seems to something else in (probably) the
debug information that confuses ctfconvert.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51337018.30000>