On Sun, Aug 23, 2020 at 06:39:10PM +0000, pkg-fall...@freebsd.org wrote:
> You are receiving this mail as a port that you maintain
> is failing to build on the FreeBSD package build server.
> Please investigate the failure and submit a PR to fix
> build.
> 
> Maintainer:     da...@catwhisker.org
> Last committer: swi...@freebsd.org
> Ident:          $FreeBSD: head/x11-wm/piewm/Makefile 519608 2019-12-09 
> 13:47:16Z swills $
> Log URL:        
> http://beefy18.nyi.freebsd.org/data/head-amd64-default/p545731_s364466/logs/piewm-1.04_4.log
> Build URL:      
> http://beefy18.nyi.freebsd.org/build.html?mastername=head-amd64-default&build=p545731_s364466
> ...
> --- piewm ---
> rm -f piewm
> cc -o piewm       -L/usr/local/lib   gram.o lex.o deftwmrc.o add_window.o 
> gc.o list.o twm.o           parse.o menus.o events.o resize.o util.o 
> version.o iconmgr.o            cursor.o icons.o vdt.o move.o LocPixmap.o 
> -lXmu -lXt -lSM -lICE -lXext -lX11 -lXt -lSM -lICE -lXext -lXext -lX11 -lm 
> -ll -lXpm      -Wl,-rpath,/usr/local/lib
> ld: error: duplicate symbol: yylineno
> >>> defined at gram.c
> >>>            gram.o:(yylineno)
> >>> defined at lex.c
> >>>            lex.o:(.data+0x0)
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> *** [piewm] Error code 1
> 
> make[1]: stopped in /wrkdirs/usr/ports/x11-wm/piewm/work/piewm-1.04
> 1 error
> 
> make[1]: stopped in /wrkdirs/usr/ports/x11-wm/piewm/work/piewm-1.04
> ===> Compilation failed unexpectedly.
> Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
> the maintainer.
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/x11-wm/piewm

So... I confess a lack of familiarity with lex, yacc, and their
work-alikes.  It also appears that x11-wm/tvtwm (for which MAINTAINER is
this list -- po...@freebsd.org) is likely similarly affected.

I understand that the immediate cause is a recent change; in
http://docs.FreeBSD.org/cgi/mid.cgi?B7F9F85B-60A4-4A87-9911-BDE1CBC7BC91,
dim@ mentioned:

| This is because clang 11 (and gcc 10) now default to -fno-common. The
| rationale is explained pretty well in...

and goes on to state:
| A quick fix is to add CFLAGS+=-fcommon to your make.conf, but that is
| rather a big hammer. It is better to add it to just the ports that show
| problems due to duplicated symbols. And ideally, those duplicated
| symbols should be patched out of the ports.

So:  apparently *a* way around this is to change the Makefile (to
include 'CFLAGS+=-fcommon') -- but I don't know if a "better" approach
is feasible: we are dealing with some rather old (or, perhaps,
"well-established") code, here.

Advice/suggestions?

Thanks!

Peace,
david
-- 
David H. Wolfskill                              da...@catwhisker.org
"Those countries that have lost control of the virus like the United
States are seeing economic forecasts constantly revised down and are
weaker economically." -- Dominick Stephens, Westpac NZ's chief economist

See http://www.catwhisker.org/~david/publickey.gpg for my public key.

Attachment: signature.asc
Description: PGP signature

Reply via email to