ctfconvert broken for C++ objects?

Justin T. Gibbs gibbs at FreeBSD.org
Fri Feb 21 22:48:05 UTC 2014


On Feb 20, 2014, at 10:26 AM, Roman Divacky <rdivacky at freebsd.org> wrote:

> The dwarf backend for ctfconvert was completely reimplemented a few weeks ago.
> It's now based on elftoolchain libdwarf.
> 
> Test on current.

The failures I’ve experienced occur when attempting to ctfconvert the C++ code in the base (e.g. ATF or devd).  You can replicate the failures on head by applying the share/mk patch below (a version of my previous patch rebased on head).

On a slightly related node, do you know why there is a FreeBSD version ranged exclusion around bootstrapping the dtrace tools?

From src/Makefile.inc1:
# dtrace tools are required for older bootstrap env and cross-build              
.if ${MK_CDDL} != "no" && \                                                      
    ((${BOOTSTRAPPING} < 1000034 && \                                            
          !(${BOOTSTRAPPING} >= 901505 && ${BOOTSTRAPPING} < 999999)) \          
      || (${MACHINE} != ${TARGET} || ${MACHINE_ARCH} != ${TARGET_ARCH}))         
_dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \                  
    lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge                   
.endif

We had to disable this protection in our build so that the fixes to the dtrace tool chain took effect prior to compiling any C++ code during buildworld.

In testing this on head, I also found that 9-stable’s g++ segfaulted when bootstrapping clang, so I had to buildworld using 9-stable’s clang to get past the bootstrap phase.  (By 9-stable, I mean a 9-stable tree from October/November from last year).

—
Justin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ctf_for_c++.diffs
Type: application/octet-stream
Size: 1015 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-toolchain/attachments/20140221/d8ff4c1f/attachment.obj>


More information about the freebsd-toolchain mailing list