Bug 2125875

Summary: 10.83: build fails on clang/llvm 15.0.0 and autoreconf warnings
Product: [Fedora] Fedora Reporter: Tomasz Kłoczko <kloczko.tomasz>
Component: annobinAssignee: serge_sans_paille <sguelton>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: fweimer, jakub, nickc, npopov, sguelton, sipoyare, yahmad
Target Milestone: ---Keywords: Bugfix
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: annobin-10.84-1.fc38 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-12-21 16:38:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tomasz Kłoczko 2022-09-11 12:47:14 UTC
If you will look closer on last build log https://kojipkgs.fedoraproject.org//packages/annobin/10.83/1.fc38/data/logs/x86_64/root.log you will find that it builds agains llvm/clang 14.0.x so you may have impression that everything is fine however annobin build fails on clang/llvnannobin 15.0.0 with

[tkloczko@devel-g2v annobin-10.83]$ make
Making all in doc
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/doc'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/doc'
Making all in gcc-plugin
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/gcc-plugin'
make  all-am
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/gcc-plugin'
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/gcc-plugin'
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/gcc-plugin'
Making all in clang-plugin
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/clang-plugin'
clang++  -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -shared -fPIC -Wall -O2 -flto -g -grecord-gcc-switches -Wl,--build-id=md5 -Wl,-z,now -I./.. -lLLVM annobin.cpp -o annobin-for-clang.so
annobin.cpp:202:70: error: no member named 'Ascii' in 'clang::StringLiteral'
         clang::StringLiteral::Create (Context, text, clang::StringLiteral::Ascii,
                                                      ~~~~~~~~~~~~~~~~~~~~~~^
1 error generated.
make[1]: *** [Makefile:33: annobin-for-clang.so] Error 1
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/annobin-10.83/clang-plugin'

Second thing is that autoreconf from autoconf 2.71 shows some warnings which would be good to clean

+ autoreconf -fiv
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I config
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'config'.
libtoolize: copying file 'config/ltmain.sh'
libtoolize: putting macros in 'config'.
libtoolize: copying file 'config/libtool.m4'
libtoolize: copying file 'config/ltoptions.m4'
libtoolize: copying file 'config/ltsugar.m4'
libtoolize: copying file 'config/ltversion.m4'
libtoolize: copying file 'config/lt~obsolete.m4'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([config])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I config
autoreconf: running: /usr/bin/autoconf --force
config/annocheck.m4:70: warning: The macro `AC_HELP_STRING' is obsolete.
config/annocheck.m4:70: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/annocheck.m4:70: the top level
configure.ac:10: warning: The macro `AC_CANONICAL_SYSTEM' is obsolete.
configure.ac:10: You should run autoupdate.
./lib/autoconf/general.m4:2081: AC_CANONICAL_SYSTEM is expanded from...
configure.ac:10: the top level
configure.ac:57: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:57: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/libgomp.m4:8: GMP is expanded from...
configure.ac:57: the top level
configure.ac:60: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:60: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/annocheck.m4:10: BUILD_ANNOCHECK is expanded from...
configure.ac:60: the top level
configure.ac:60: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:60: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/libelf.m4:8: LIBELF is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
config/annocheck.m4:10: BUILD_ANNOCHECK is expanded from...
configure.ac:60: the top level
configure.ac:62: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:62: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/annocheck.m4:34: BUILD_CLANG_PLUGIN is expanded from...
configure.ac:62: the top level
configure.ac:64: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:64: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/annocheck.m4:43: BUILD_GCC_PLUGIN is expanded from...
configure.ac:64: the top level
configure.ac:66: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:66: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/annocheck.m4:52: BUILD_LLVM_PLUGIN is expanded from...
configure.ac:66: the top level
configure.ac:68: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:68: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/annocheck.m4:61: BUILD_DOCS is expanded from...
configure.ac:68: the top level
configure.ac:94: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:94: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from...
config/gcc-plugin.m4:7: GCC_PLUGIN is expanded from...
configure.ac:94: the top level
configure.ac:144: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:144: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
config/debuginfod.m4:8: DEBUGINFOD is expanded from...
configure.ac:144: the top level
configure.ac:146: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:146: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from...
config/disable-rpath.m4:5: DISABLE_RPATH is expanded from...
configure.ac:146: the top level
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:11: installing 'config/compile'
configure.ac:18: installing 'config/missing'
autoreconf: Leaving directory '.'

Comment 1 Tomasz Kłoczko 2022-09-13 13:31:22 UTC
gentle ping :P

Comment 2 Tomasz Kłoczko 2022-09-13 13:31:23 UTC
gentle ping :P

Comment 3 Nick Clifton 2022-09-14 08:55:59 UTC
(In reply to Tomasz Kłoczko from comment #2)
> gentle ping :P

Sorry!

I have asked the guy who wrote the code in question about how it should be fixed.  (I am not a C++/Clang expert, so I do not know what should be done).

I agree that the autoconf stuff does need cleaning up and I will get to it in my copious free time(tm).

In case you did not know, annobin can now also be configured and built with meson + ninja, which is a much cleaner method.  IMHO.

Cheers
  Nick

Comment 4 Tomasz Kłoczko 2022-09-14 09:30:05 UTC
No problem.
If you want I can try to help with autoconf varnings.

Comment 5 Nick Clifton 2022-09-14 09:43:42 UTC
(In reply to Tomasz Kłoczko from comment #4)

> If you want I can try to help with autoconf varnings.

Yes please - all help gratefully received.

Comment 6 serge_sans_paille 2022-09-16 09:07:05 UTC
@nick I've sent you a patch for the clang 15 error, let's see if that's enough.

Comment 7 Nick Clifton 2022-09-20 12:20:50 UTC
Thanks Serge.  That patch fixes the build problem.  But it turns out that there was a second issue.  LLVM-15 no longer supports the -flegacy-pass-manager option, so I had to fix the LLVM plugin test harness code as well.  With that done however, annobin now builds, runs and passes its testsuites.

Fixed in: annobin-10.84-1.fc38

Comment 8 Nikita Popov 2022-12-21 15:43:21 UTC
As far as I can tell, annobin is building successfully against clang 15 on both f37 and f38, so this issue can probably be closed?

Comment 9 Nick Clifton 2022-12-21 16:38:17 UTC
Agreed - closing.