-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Am Sat, 9 Jun 2018 14:02:37 -0400
Mark Johnston <ma...@freebsd.org> schrieb:

> On Sat, Jun 09, 2018 at 01:56:18PM -0400, Bryan Drewery wrote:
> > On 6/9/18 1:39 PM, Mark Johnston wrote:  
> > > On Sat, Jun 09, 2018 at 07:35:00PM +0200, O. Hartmann wrote:  
> > >> -----BEGIN PGP SIGNED MESSAGE-----
> > >> Hash: SHA512
> > >>
> > >> Am Sat, 9 Jun 2018 15:10:49 +0000 (UTC)
> > >> Mark Johnston <ma...@freebsd.org> schrieb:
> > >>  
> > >>> Author: markj
> > >>> Date: Sat Jun  9 15:10:49 2018
> > >>> New Revision: 334883
> > >>> URL: https://svnweb.freebsd.org/changeset/base/334883
> > >>>
> > >>> Log:
> > >>>   Don't process DWARF generated from non-C/C++ code.
> > >>>   
> > >>>   ctfconvert(1) is not designed to handle DWARF generated from such 
> > >>> code,
> > >>>   and will generally fail in non-obvious ways.  Use an explicit check to
> > >>>   help catch such potential failures.
> > >>>   
> > >>>   Reported by:  Johannes Lundberg <johal...@gmail.com>
> > >>>   MFC after:    2 weeks
> > >>>
> > >>> Modified:
> > >>>   head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c
> > >>>
> > >>> Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c
> > >>> ==============================================================================
> > >>> --- head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Sat Jun  9 
> > >>> 15:10:39
> > >>> 2018    (r334882) +++ 
> > >>> head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c
> > >>> Sat Jun  9 15:10:49 2018        (r334883) @@ -1901,7 +1901,7 @@
> > >>> should_have_dwarf(Elf *elf) int
> > >>>  dw_read(tdata_t *td, Elf *elf, char *filename __unused)
> > >>>  {
> > >>> -       Dwarf_Unsigned abboff, hdrlen, nxthdr;
> > >>> +       Dwarf_Unsigned abboff, hdrlen, lang, nxthdr;
> > >>>         Dwarf_Half vers, addrsz, offsz;
> > >>>         Dwarf_Die cu = 0;
> > >>>         Dwarf_Die child = 0;
> > >>> @@ -1941,8 +1941,8 @@ dw_read(tdata_t *td, Elf *elf, char *filename 
> > >>> __unused
> > >>>         }
> > >>>  
> > >>>         if ((rc = dwarf_next_cu_header_b(dw.dw_dw, &hdrlen, &vers, 
> > >>> &abboff,
> > >>> -               &addrsz, &offsz, NULL, &nxthdr, &dw.dw_err)) != 
> > >>> DW_DLV_OK) {
> > >>> -               if (dw.dw_err.err_error ==      DW_DLE_NO_ENTRY)
> > >>> +           &addrsz, &offsz, NULL, &nxthdr, &dw.dw_err)) != DW_DLV_OK) {
> > >>> +               if (dw.dw_err.err_error == DW_DLE_NO_ENTRY)
> > >>>                         exit(0);
> > >>>                 else
> > >>>                         terminate("rc = %d %s\n", rc, 
> > >>> dwarf_errmsg(dw.dw_err));
> > >>> @@ -1971,6 +1971,25 @@ dw_read(tdata_t *td, Elf *elf, char *filename 
> > >>> __unused
> > >>>                 debug(1, "DWARF emitter: %s\n", prod);
> > >>>                 free(prod);
> > >>>         }
> > >>> +
> > >>> +       if (dwarf_attrval_unsigned(cu, DW_AT_language, &lang, 
> > >>> &dw.dw_err) == 0)
> > >>> +               switch (lang) {
> > >>> +               case DW_LANG_C:
> > >>> +               case DW_LANG_C89:
> > >>> +               case DW_LANG_C99:
> > >>> +               case DW_LANG_C11:
> > >>> +               case DW_LANG_C_plus_plus:
> > >>> +               case DW_LANG_C_plus_plus_03:
> > >>> +               case DW_LANG_C_plus_plus_11:
> > >>> +               case DW_LANG_C_plus_plus_14:
> > >>> +                       break;
> > >>> +               default:
> > >>> +                       terminate("file contains DWARF for unsupported "
> > >>> +                           "language %d", lang);
> > >>> +               }
> > >>> +       else
> > >>> +               warning("die %llu: failed to get language attribute: 
> > >>> %s\n",
> > >>> +                   die_off(&dw, cu), dwarf_errmsg(dw.dw_err));
> > >>>  
> > >>>         if ((dw.dw_cuname = die_name(&dw, cu)) != NULL) {
> > >>>                 char *base = xstrdup(basename(dw.dw_cuname));
> > >>> _______________________________________________
> > >>> svn-src-head@freebsd.org mailing list
> > >>> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> > >>> To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org" 
> > >>>  
> > >> This commit makes buildworld (WITH_META_MODE) failing:  
> > > 
> > > I added these identifiers in r334881, and the CI build is passing. Might
> > > this be a problem with META_MODE?
> > >   
> > >> [...]  
> > >> ===> cddl/usr.bin/ctfconvert (obj,all,install)  
> > >> Building 
> > >> /usr/obj/usr/src/amd64.amd64/tmp/obj-tools/cddl/usr.bin/ctfconvert/dwarf.o
> > >>   
> > 
> > obj-tools means it is trying to build a HOST NATIVE version of this.
> > Where are these defined? In this case they need to be defined in
> > /usr/include already unless the build has -I.CURDIR/somewhere/to/headers
> > instead.  
> 
> The definitions are in contrib/elftoolchain/libdwarf/dwarf.h. Indeed,
> the ctfconvert makefile doesn't explicitly add libdwarf to the include
> path. I'm surprised that this is necessary though - do I need to modify
> the BOOTSTRAPPING check for _elftoolchain_libs in Makefile.inc1?
> _______________________________________________
> svn-src-head@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

I started on one of the faster boxes with a make cleanworld and tried then to 
rebuild
world and kernel. It ends up at the very same error for me.

Regards,

oh 

- -- 
O. Hartmann

Ich widerspreche der Nutzung oder Übermittlung meiner Daten für
Werbezwecke oder für die Markt- oder Meinungsforschung (§ 28 Abs. 4 BDSG).
-----BEGIN PGP SIGNATURE-----

iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCWxwedQAKCRDS528fyFhY
lPr3AfwNcmesH014thRI3WySg8Xx73O4msJEZS419fXel0V9YDRzxdn2VL7eE7Fv
jn29EUnO+uBGMQI9uOFW3tcvT+dEAfwJnx1z+6n97+GR6VD/XHmPO6Phuk2TYMet
rOopqMkGVIxpp91DTMOLz6ayz4bhYdfpmJoOTCEpaOpWAlrbUHuG
=d4dd
-----END PGP SIGNATURE-----
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to