Today I revisited cloning gcc-sanitizers.inc and gcc-sanitizers_9.3.bb in an attempt to make a recipe that configures and builds libvtv. This somewhat works, but I get errors with libtool
| /bin/sh ./libtool --tag=CXX --mode=compile -DPACKAGE_NAME=\"GNU\ Vtable\ Verification\ Runtime\ Library\" -DPACKAGE_TARNAME=\"libvtv\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"GNU\ Vtable\ Verification\ Runtime\ Library\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"http://www.gnu.org/software/libvtv/\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DPACKAGE=\"libvtv\" -DVERSION=\"1.0\" -DHAVE_SECURE_GETENV=1 -DHAVE___FORTIFY_FAIL=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE__OBSTACK_BEGIN=1 -I. -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/../include -D_GNU_SOURCE -Wall -Wextra -fno-exceptions -I./../libstdc++-v3/include -I./../libstdc++-v3/include/aarch64-oe-linux -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/../libstdc++-v3/libsupc++ -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end -O2 -fomit-frame-pointer -Wa,--noexecstack -fexpensive-optimizations -frename-registers -ftree-vectorize -finline-functions -finline-limit=64 -Wno-error=maybe-uninitialized -Wno-error=unused-result -fvisibility-inlines-hidden -c -o vtv_malloc.lo ../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/vtv_malloc.cc | /bin/sh ./libtool --tag=CXX --mode=compile -DPACKAGE_NAME=\"GNU\ Vtable\ Verification\ Runtime\ Library\" -DPACKAGE_TARNAME=\"libvtv\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"GNU\ Vtable\ Verification\ Runtime\ Library\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"http://www.gnu.org/software/libvtv/\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DPACKAGE=\"libvtv\" -DVERSION=\"1.0\" -DHAVE_SECURE_GETENV=1 -DHAVE___FORTIFY_FAIL=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE__OBSTACK_BEGIN=1 -I. -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/../include -D_GNU_SOURCE -Wall -Wextra -fno-exceptions -I./../libstdc++-v3/include -I./../libstdc++-v3/include/aarch64-oe-linux -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/../libstdc++-v3/libsupc++ -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end -O2 -fomit-frame-pointer -Wa,--noexecstack -fexpensive-optimizations -frename-registers -ftree-vectorize -finline-functions -finline-limit=64 -Wno-error=maybe-uninitialized -Wno-error=unused-result -fvisibility-inlines-hidden -c -o vtv_rts.lo ../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/vtv_rts.cc | /bin/sh ./libtool --tag=CXX --mode=compile -DPACKAGE_NAME=\"GNU\ Vtable\ Verification\ Runtime\ Library\" -DPACKAGE_TARNAME=\"libvtv\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"GNU\ Vtable\ Verification\ Runtime\ Library\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"http://www.gnu.org/software/libvtv/\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DPACKAGE=\"libvtv\" -DVERSION=\"1.0\" -DHAVE_SECURE_GETENV=1 -DHAVE___FORTIFY_FAIL=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE__OBSTACK_BEGIN=1 -I. -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/../include -D_GNU_SOURCE -Wall -Wextra -fno-exceptions -I./../libstdc++-v3/include -I./../libstdc++-v3/include/aarch64-oe-linux -I../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/../libstdc++-v3/libsupc++ -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end -O2 -fomit-frame-pointer -Wa,--noexecstack -fexpensive-optimizations -frename-registers -ftree-vectorize -finline-functions -finline-limit=64 -Wno-error=maybe-uninitialized -Wno-error=unused-result -fvisibility-inlines-hidden -c -o vtv_utils.lo ../../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/libvtv/vtv_utils.cc | libtool: compile: unrecognized option `-DPACKAGE_NAME="GNU Vtable Verification Runtime Library"' | libtool: compile: Try `libtool --help' for more information. | libtool: compile: unrecognized option `-DPACKAGE_NAME="GNU Vtable Verification Runtime Library"' | libtool: compile: Try `libtool --help' for more information. | Makefile:607: recipe for target 'vtv_malloc.lo' failed | libtool: compile: unrecognized option `-DPACKAGE_NAME="GNU Vtable Verification Runtime Library"' | make[2]: *** [vtv_malloc.lo] Error 1 | libtool: compile: Try `libtool --help' for more information. | make[2]: *** Waiting for unfinished jobs.... | Makefile:607: recipe for target 'vtv_rts.lo' failed | make[2]: *** [vtv_rts.lo] Error 1 | Makefile:607: recipe for target 'vtv_utils.lo' failed | make[2]: *** [vtv_utils.lo] Error 1 On Wed, Sep 27, 2023 at 9:16 PM Alex Roberts via lists.yoctoproject.org <[email protected]> wrote: > > >If libvtv is a separate library (I've not looked) > > It is a separate library whose source is inside the gcc source folder. Much > of the documentation for enabling vtable verify is for compiling gcc from > source outside of Yocto and just references using the flag with ./configure > when building gcc from source. > > > I suspect there are tweaks needed to the gcc-runtime recipe to build it > > I put “—enable-vtable-verify” in the gcc-common include so it should have > been picked up by gcc.bb, gcc-cross and gcc-runtime. I also tried adding to > just gcc cross and gcc runtime recipes. I also looked at how the sanitizer > libraries were being built with gcc-sanitizers, but was unable to get a > working solution. I gave up to focus on other priorities, but figured I’d ask > the list in case someone had come across this before. > > > On Wednesday, September 27, 2023, Richard Purdie > <[email protected]> wrote: >> >> On Wed, 2023-09-27 at 09:40 -0500, Alex Roberts wrote: >> > Hello All, >> > >> > I'm having trouble getting gcc-cross-9.3.0 recipe to build libvtv. I >> > have added “—enable-vtable-verify” to EXTRA_OECONF via a .bbappend. >> > The vtable stubs are added to libstdc++ but libvtv itself is not >> > compiled. This causes recipes compiling with -fstandard-verify to fail >> > because libvtv doesn’t exist and cannot be linked in. >> > >> > Looking at the autoconf files and the resulting Makefile, libvtv >> > should be getting configured and compiled with the recipe, but I can >> > not determine why it is not. >> > >> > Does anyone have experience enabling vtable-verify to a cross-compiler >> > toolchain? >> >> If libvtv is a separate library (I've not looked), I suspect there are >> tweaks needed to the gcc-runtime recipe to build it? >> >> Cheers, >> >> Richard > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#61161): https://lists.yoctoproject.org/g/yocto/message/61161 Mute This Topic: https://lists.yoctoproject.org/mt/101618304/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
