Bug 246668

Summary: editors/emacs-devel fails to build in poudriere on 12.1 Stable amd64 with error fallthrough annotation does not directly precede switch label
Product: Ports & Packages Reporter: Robert Cina <transitive>
Component: Individual Port(s)Assignee: emacs (Nobody) <emacs>
Status: Closed Works As Intended    
Severity: Affects Only Me CC: ashish, jrm
Priority: --- Flags: bugzilla: maintainer-feedback? (emacs)
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
editors/emacs-devel poudriere build log of the failure
none
Update to emacs-devel with a proper fix from upstream
none
editors/emacs-devel successful poudriere build log for 12.1 Stable none

Description Robert Cina 2020-05-22 21:41:09 UTC
I am still seeing this error when building the emacs-devel port with poudriere with 12.1 Stable.

When I used the patch provided by bug 246525 it compiled fine but the subsequent fix for the port still has the issue for me.

Below is the build error:


gmake[2]: Entering directory '/wrkdirs/usr/ports/editors/emacs-devel/work-full/emacs-b1fe27d/lib-src'
cc   -Wno-switch -Wno-pointer-sign -Wno-string-plus-int -Wno-unknown-attributes -Wno-initializer-overrides -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare  -I. -I../src -I../lib -I. -I./../src -I./../lib  -fstack-protector-strong -L/usr/local/lib  -L/usr/local/lib -isystem /usr/local/include -O2 -pipe  -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -o etags etags.c  ../lib/libgnu.a -lutil
error: fallthrough annotation does not directly precede switch label
makeinfo --force -I./../emacs --no-split  \
  -o ../../info/bovine.info bovine.texi
1 error generated.
gmake[2]: *** [Makefile:366: etags] Error 1
gmake[2]: Leaving directory '/wrkdirs/usr/ports/editors/emacs-devel/work-full/emacs-b1fe27d/lib-src'
gmake[1]: *** [Makefile:411: lib-src] Error 2
/bin/mkdir -p ./info
gmake[1]: *** Waiting for unfinished jobs....
(cd ./doc && \
Comment 1 Ashish SHUKLA freebsd_committer freebsd_triage 2020-05-23 19:07:23 UTC
Hi,

So port builds in non-poudriere environment, but not in poudriere environment ?

Could you please share the build log from poudriere environment ?

Thanks!
Comment 2 Robert Cina 2020-05-23 19:30:19 UTC
Created attachment 214790 [details]
editors/emacs-devel poudriere build log of the failure

I attached the build log of the failure. When I applied the previous patch to the emacs-devel port and tested if it compiled. It compiled successfully for me. But after updating the poudriere ports tree to the latest emacs-devel port it fails to compile for me now.  Hopefully that helps.

Thanks.
Comment 3 Ashish SHUKLA freebsd_committer freebsd_triage 2020-05-23 19:46:50 UTC
(In reply to Robert Cina from comment #2)

Thanks for providing the build log.

In my build log, I see following line which is absent in yours:

"===>  Applying FreeBSD patches for emacs-devel-28.0.50.20200518,2 from /usr/ports/editors/emacs-devel/files"

Following is an excerpt from mine:

===>  License GPLv3+ accepted by the user
===> Fetching all distfiles required by emacs-devel-28.0.50.20200518,2 for building
===>  Extracting for emacs-devel-28.0.50.20200518,2
=> SHA256 Checksum OK for emacs-mirror-emacs-28.0.50.20200518-b1fe27d_GH0.tar.gz.
===========================================================================
=======================<phase: patch-depends  >============================
===========================================================================
=======================<phase: patch          >============================
===>  Patching for emacs-devel-28.0.50.20200518,2
===>  Applying FreeBSD patches for emacs-devel-28.0.50.20200518,2 from /usr/ports/editors/emacs-devel/files
===========================================================================
=======================<phase: build-depends  >============================
===>   emacs-devel-28.0.50.20200518,2 depends on package: texinfo>=6.5,1 - not found
===>   Installing existing package /packages/All/texinfo-6.7_3,1.txz
[pkg.FreeBSD.org] Installing texinfo-6.7_3,1...
[pkg.FreeBSD.org] `-- Installing gettext-runtime-0.20.2...


Could you please check that in your Poudriere's ports tree you have editors/emacs-devel/files/patch-lib-src_etags.c file present:

Following are its contents:

--- lib-src/etags.c.orig	2020-05-18 16:17:29 UTC
+++ lib-src/etags.c
@@ -4196,7 +4196,6 @@ C_entries (int c_ext, FILE *inf)
 	      objdef = omethodsign;
 	      break;
 	    }
-	  FALLTHROUGH;
 	resetfvdef:
 	case '#': case '~': case '&': case '%': case '/':
 	case '|': case '^': case '!': case '.': case '?':



Unless I messed up somehow in the commit[1], it should be present in your tree.

Other than that, nothing obvious comes to my mind.

References:
[1] https://svnweb.freebsd.org/changeset/ports/535805

Thanks!
Comment 4 Robert Cina 2020-05-23 21:27:27 UTC
Thank you for your help. Indeed the file you mentioned was missing from my ports tree. I don't know why it was missing but i just deleted the ports tree and recreated it and now the port builds fine. 

Thanks for all your help that solved my issue. I guess you can close this bug.
Comment 5 Ashish SHUKLA freebsd_committer freebsd_triage 2020-05-23 21:33:06 UTC
Created attachment 214794 [details]
Update to emacs-devel with a proper fix from upstream

If you don't mind, I'll appreciate if you could try the attached patch on your -STABLE poudriere instance. We reported the problem to upstream[1], and they included a fix. I was only able to test it on my -RELEASE host with devel/llvm10, so a confirmation on -STABLE would be great.

References:
[1] https://lists.gnu.org/r/emacs-devel/2020-05/msg03013.html

Thanks!
Comment 6 Robert Cina 2020-05-23 21:52:02 UTC
Created attachment 214795 [details]
editors/emacs-devel successful poudriere build log for 12.1 Stable

I have tried the patch you provided and it builds successfully. I have provided the build log for the poudriere testport build that I ran.
Comment 7 Ashish SHUKLA freebsd_committer freebsd_triage 2020-05-23 21:54:10 UTC
(In reply to Robert Cina from comment #6)

Awesome, thank you very much.

Have a good weekend.