public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "fxcoudert at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug libbacktrace/103822] New: libbacktrace make check fails with GNU Make 3.81 Date: Fri, 24 Dec 2021 10:09:57 +0000 [thread overview] Message-ID: <bug-103822-4@http.gcc.gnu.org/bugzilla/> (raw) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103822 Bug ID: 103822 Summary: libbacktrace make check fails with GNU Make 3.81 Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libbacktrace Assignee: unassigned at gcc dot gnu.org Reporter: fxcoudert at gcc dot gnu.org CC: ian at gcc dot gnu.org Target Milestone: --- The failure is observed on macOS (*-apple-darwin21), where the system make is GNU Make 3.81. But I think it would occur on all platforms that are not ELF and use GNU Make 3.81. Running `make check` leads to this failure: elf_32.c:144:26: error: extra tokens at end of #undef directive [-Werror] 144 | #undef BACKTRACE_ELF_SIZE#define BACKTRACE_ELF_SIZE 32 | ^ where the invalid elf_32.c is generated by this command: SEARCH='#error "Unknown BACKTRACE_ELF_SIZE"'; \ REPLACE='#undef BACKTRACE_ELF_SIZE\ #define BACKTRACE_ELF_SIZE'; \ /usr/bin/sed "s/^$SEARCH\$/$REPLACE 32/" \ /tmp/gcc-darwin-arm64/libbacktrace/elf.c \ > elf_32.c.tmp mv elf_32.c.tmp elf_32.c This tries to have a newline inside the REPLACE string, and pass it to sed. This fails with GNU Make < 4. And GCC requires "GNU make version 3.80 (or later)". The portable solution is given in the autoconf manual: https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Newlines-in-Make-Rules.html The patch to fix it is this: diff --git a/libbacktrace/Makefile.am b/libbacktrace/Makefile.am index 8874f41338a..180a3b1a809 100644 --- a/libbacktrace/Makefile.am +++ b/libbacktrace/Makefile.am @@ -145,18 +145,18 @@ endif HAVE_OBJCOPY_DEBUGLINK endif HAVE_ELF elf_%.c: elf.c + nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \ SEARCH='#error "Unknown BACKTRACE_ELF_SIZE"'; \ - REPLACE='#undef BACKTRACE_ELF_SIZE\ - #define BACKTRACE_ELF_SIZE'; \ + REPLACE='#undef BACKTRACE_ELF_SIZE\\$${nl}#define BACKTRACE_ELF_SIZE'; \ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ $< \ > $@.tmp mv $@.tmp $@ xcoff_%.c: xcoff.c + nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \ SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \ - REPLACE='#undef BACKTRACE_XCOFF_SIZE\ - #define BACKTRACE_XCOFF_SIZE'; \ + REPLACE='#undef BACKTRACE_XCOFF_SIZE\\$${nl}#define BACKTRACE_XCOFF_SIZE'; \ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ $< \ > $@.tmp
next reply other threads:[~2021-12-24 10:09 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-12-24 10:09 fxcoudert at gcc dot gnu.org [this message] 2021-12-24 10:13 ` [Bug libbacktrace/103822] " fxcoudert at gcc dot gnu.org 2021-12-29 19:28 ` fxcoudert at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-103822-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).