===================================================================== Changes needed to support the way that gcc generates stuff --------------------------------------------------------------------- --- /u/freebsd/head/src/lib/libelf/elf_strptr.c 2006-11-12 04:16:33.000000000 +1100 +++ /u/p4/dtrace/src/lib/libelf/elf_strptr.c 2008-04-19 16:53:58.000000000 +1000 @@ -55,7 +55,7 @@ gelf_getshdr(s, &shdr) == NULL) return (NULL); - if (shdr.sh_type != SHT_STRTAB || + if (/*shdr.sh_type != SHT_STRTAB || */ offset >= shdr.sh_size) { LIBELF_SET_ERROR(ARGUMENT, 0); return (NULL); ===================================================================== Changes needed to support the way that gcc generates stuff --------------------------------------------------------------------- --- /u/freebsd/head/src/lib/libelf/libelf_align.c 2006-12-18 16:36:23.000000000 +1100 +++ /u/p4/dtrace/src/lib/libelf/libelf_align.c 2008-04-19 16:53:59.000000000 +1000 @@ -122,7 +122,7 @@ #endif [ELF_T_MOVEP] = UNSUPPORTED(), #if __FreeBSD_version >= 700025 - [ELF_T_NOTE] = FALIGN(4,4), + [ELF_T_NOTE] = FALIGN(1,1), #endif [ELF_T_OFF] = FALIGN(4,8), [ELF_T_PHDR] = FALIGN(4,8), ===================================================================== Changes needed to support the way that gcc generates stuff --------------------------------------------------------------------- --- /u/freebsd/head/src/lib/libelf/libelf_data.c 2007-11-23 22:29:36.000000000 +1100 +++ /u/p4/dtrace/src/lib/libelf/libelf_data.c 2008-04-19 16:54:00.000000000 +1000 @@ -78,6 +78,8 @@ case SHT_SUNW_syminfo: return (ELF_T_SYMINFO); #endif + case SHT_AMD64_UNWIND: /* == SHT_IA_64_UNWIND */ + return (ELF_T_BYTE); default: return (-1); }