> On 2 Jan 2019, at 13:20, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > > Gerald Pfeifer <ger...@pfeifer.com> writes: > >> On Fri, 23 Nov 2018, Tom de Vries wrote: >>> When building libbacktrace, we typically use elf.c, and don't build >>> pecoff.c, xcoff.c or unknown.c >>> >>> Add testcases that use unused format to ensure that we also build and >>> test those on a typical development setup. >> >> This is a good idea! >> >>> Bootstrapped and reg-tested on x86_64. >> >> Unfortunately, on i586-unknown-freebsd11 I'm now seeing the likes of >> >> gmake[3]: *** [Makefile:1086: xcoff_32.lo] Error 1 >> xcoff_64.c:54:29: error: extra tokens at end of #undef directive [-Werror] >> 54 | #undef BACKTRACE_XCOFF_SIZEn#define BACKTRACE_XCOFF_SIZE 64 >> | ^ >> xcoff_64.c:54:29: warning: extra tokens at end of #undef directive >> 54 | #undef BACKTRACE_XCOFF_SIZEn#define BACKTRACE_XCOFF_SIZE 64 >> | ^ >> cc1: all warnings being treated as errors >> gmake[3]: *** [Makefile:1086: xcoff_64.lo] Error 1 >> >> The reason is that GNU sed supports \n in the replacement pattern >> >> % echo "abc" | sed -E 's:b:\n:' >> a >> c >> >> whereas BSD sed does not >> >> % echo "abc" | sed -E 's:b:\n:' >> anc >> >> so the following in libbacktrace/Makefile.am doesn't work: >> >> xcoff_%.c: xcoff.c >> SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \ >> REPLACE='#undef BACKTRACE_XCOFF_SIZE\n#define BACKTRACE_XCOFF_SIZE'; \ >> $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ >> $(srcdir)/xcoff.c \ >> > $@ >> >> >> I believe that in addition to FreeBSD this probably also fails on >> Solaris and Darwin. > > I cannot test Darwin right now,
I have builds running on a number of versions, will take a look - is it missing a “macho_xx.c” implementation, anyway ? > but Solaris sed is indeed affected. On > Solaris 10 where there's only /usr/bin/sed (and /usr/xpg4/bin/sed which > has the same issue), the failure does occur. On Solaris 11 where I have > GNU sed earlier in PATH, the issue is hidden. > > Your patch does indeed fix the problem with Solaris 10 /bin/sed. > > Unfortunately, libbacktrace is one of those libraries that don't produce > Dejagnu-style .sum and .log files, so test failures are buried in the > make check output and very easily overlooked. > > Rainer > > -- > ----------------------------------------------------------------------------- > Rainer Orth, Center for Biotechnology, Bielefeld University