Bug 235636

Summary: archivers/arj: build error: Abort trap after upgrading to FreeBSD 12.0
Product: Ports & Packages Reporter: Peter Putzer <freebsd>
Component: Individual Port(s)Assignee: Renato Botelho <garga>
Status: Closed FIXED    
Severity: Affects Some People CC: andrew.hotlab, dewayne, freebsd, freebsd, info, jsm, w.schwarzenfeld
Priority: --- Flags: bugzilla: maintainer-feedback? (garga)
Version: Latest   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
Fix attempt none

Description Peter Putzer 2019-02-10 08:08:55 UTC
After upgrading a server to FreeBSD 12.0, I cannot build arj anymore. It seems like the issue is the same as bug #219716, which is supposed to have been fixed. I've tried all three locale config options.

...
/usr/local/libexec/ccache/world/cc -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O3 -pipe -funroll-loops -march=native  -fstack-protector -fno-strict-aliasing  -fstack-protector  -s gnu/stripgcc.lnk -o freebsd12.0/en/rs/tools/msgbind ./freebsd12.0/en/rs/tools/filemode.o ./freebsd12.0/en/rs/tools/msgbind.o ./freebsd12.0/en/rs/tools/arjdata.o ./freebsd12.0/en/rs/tools/crc32.o 
./freebsd12.0/en/rs/tools/msgbind ./resource/resource.txt msg_crp UNIX s en ./freebsd12.0/en/rs
gmake[3]: *** [GNUmakefile:258: freebsd12.0/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/archivers/arj
*** Error code 1

Stop.
make: stopped in /usr/ports/archivers/arj
Comment 1 Peter Putzer 2019-02-10 08:13:34 UTC
OK, I've now review bug #219716 more closely and it appears to be something different. (Not sure if it makes a difference, but "WITH_LLD_IS_LD=yes" is NOT set in my make.conf.)
Comment 2 Renato Botelho freebsd_committer freebsd_triage 2019-02-25 13:42:59 UTC
I couldn't reproduce this issue on FreeBSD 12.0 amd64. what is the content of your /etc/make.conf?
Comment 3 Peter Putzer 2019-02-25 15:35:11 UTC
(In reply to Renato Botelho from comment #2)

DEFAULT_VERSIONS= bdb=5 perl5=5.28 mysql=10.3m php=7.2 ruby=2.4 ssl=libressl
CPUTYPE?=native
CFLAGS= -O3 -pipe -funroll-loops

INDEXDIR=               /usr/ports
WRKDIRPREFIX=           /var/ports
DISTDIR=                /var/ports/distfiles
PACKAGES=               /var/ports/packages

OPTIONS_UNSET=X11 GSSAPI_BASE
OPTIONS_SET= GSSAPI_MIT
WITH_PKGNG=yes
WITH_CCACHE_BUILD=yes
WITH_LIBCPLUSPLUS=yes
Comment 4 Renato Botelho freebsd_committer freebsd_triage 2019-03-29 13:12:27 UTC
Even with the same make.conf I couldn't reproduce this failure
Comment 5 Peter Putzer 2019-03-29 20:56:20 UTC
(In reply to Renato Botelho from comment #4)

Well, I tried to check again from scratch and did a `make distclean`, no the port is broken again (arj_3.10.22-17.debian.tar.xz is not available anymore).
Comment 6 Renato Botelho freebsd_committer freebsd_triage 2019-07-16 18:49:22 UTC
(In reply to Peter Putzer from comment #5)
Fixed now. Could you please try again?
Comment 7 Peter Putzer 2019-07-16 18:57:50 UTC
(In reply to Renato Botelho from comment #6)

===>  Cleaning for arj-3.10.22_7
===>  License GPLv2 accepted by the user
===>   arj-3.10.22_7 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by arj-3.10.22_7 for building
===>  Extracting for arj-3.10.22_7
=> SHA256 Checksum OK for arj-3.10.22.tar.gz.
=> SHA256 Checksum OK for arj_3.10.22-17.debian.tar.xz.
===>  Patching for arj-3.10.22_7
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/001_arches_align.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/003_64_bit_clean.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/004_parallel_build.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/005_use_system_strnlen.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/006_use_safe_strcpy.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/out-of-bounds-read.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/remove_build_date.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/security-afl.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/security-traversal-dir.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/security-traversal-symlink.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/security_format.patch
===>  Applying extra patch /var/ports/usr/ports/archivers/arj/work/debian/patches/self_integrity_64bit.patch
===>  Applying FreeBSD patches for arj-3.10.22_7
===>   arj-3.10.22_7 depends on package: autoconf>=2.69 - found
===>   arj-3.10.22_7 depends on package: automake>=1.16.1 - found
===>   arj-3.10.22_7 depends on executable: gmake - found
===>  Configuring for arj-3.10.22_7
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:162: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2729: _AC_RUN_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2748: AC_RUN_IFELSE is expanded from...
configure.in:162: the top level
configure.in:162: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2729: _AC_RUN_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2748: AC_RUN_IFELSE is expanded from...
configure.in:162: the top level
configure.in:162: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2729: _AC_RUN_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2748: AC_RUN_IFELSE is expanded from...
configure.in:162: the top level
configure.in:162: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2729: _AC_RUN_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2748: AC_RUN_IFELSE is expanded from...
configure.in:162: the top level
configure: loading site script /usr/ports/Templates/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... amd64-portbld-freebsd12.0
checking host system type... amd64-portbld-freebsd12.0
checking for gcc... /usr/local/libexec/ccache/world/cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/local/libexec/ccache/world/cc accepts -g... yes
checking for /usr/local/libexec/ccache/world/cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cpp
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... (cached) /usr/bin/egrep
checking for ANSI C header files... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for memory.h... (cached) yes
checking for strings.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking for fcntl.h... (cached) yes
checking for limits.h... (cached) yes
checking for malloc.h... (cached) no
checking for an ANSI C-conforming const... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking whether byte ordering is bigendian... no
checking whether /usr/local/libexec/ccache/world/cc needs -traditional... no
checking for working memcmp... yes
checking return type of signal handlers... void
checking for vprintf... (cached) yes
checking for _doprnt... no
checking for getcwd... (cached) yes
checking for min... no
checking for max... no
checking for mkdir... yes
checking for mkdtemp... (cached) yes
checking for rmdir... yes
checking for fcloseall... yes
checking for strcasecmp... (cached) yes
checking for setpriority... yes
checking for strdup... (cached) yes
checking for strerror... (cached) yes
checking for strstr... (cached) yes
checking for strnlen... (cached) yes
checking for strupr... no
checking for strlwr... no
checking for strtol... (cached) yes
checking for strtoul... (cached) yes
checking if dynamic C library may be used... yes
checking if SFX executables may be packed... yes
checking what to use as a dedicated output directory... freebsd12.0
checking fnmatch() tolerance to incomplete patterns acting as filenames... yes
checking if color output is demanded... no
configure: creating ./config.status
config.status: creating ../GNUmakefile
config.status: WARNING:  'makefile.in' seems to ignore the --datarootdir setting
config.status: creating ../c_defs.h
===>  Building for arj-3.10.22_7
gmake[2]: Entering directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
mkdir -p ./freebsd12.0/en/rs
mkdir -p ./freebsd12.0/en/rs/tools
mkdir -p ./freebsd12.0/en/rs/arjcrypt
mkdir -p ./freebsd12.0/en/rs/sfxstub
mkdir -p ./freebsd12.0/en/rs/arjsfxv
mkdir -p ./freebsd12.0/en/rs/arjsfx
mkdir -p ./freebsd12.0/en/rs/arjsfxjr
mkdir -p ./freebsd12.0/en/rs/arj
mkdir -p ./freebsd12.0/en/rs/rearj
mkdir -p ./freebsd12.0/en/rs/register
mkdir -p ./freebsd12.0/en/rs/arjdisp
gmake msg-headers
gmake[3]: Entering directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
/usr/local/libexec/ccache/world/cc -DARJUTIL -c -Ifreebsd12.0 -I./freebsd12.0/en/rs -I. -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -ofreebsd12.0/en/rs/tools/filemode.o filemode.c
/usr/local/libexec/ccache/world/cc -DARJUTIL -c -Ifreebsd12.0 -I./freebsd12.0/en/rs -I. -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -ofreebsd12.0/en/rs/tools/msgbind.o msgbind.c
/usr/local/libexec/ccache/world/cc -DARJUTIL -c -Ifreebsd12.0 -I./freebsd12.0/en/rs -I. -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -ofreebsd12.0/en/rs/tools/arjdata.o arjdata.c
/usr/local/libexec/ccache/world/cc -DARJUTIL -c -Ifreebsd12.0 -I./freebsd12.0/en/rs -I. -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -ofreebsd12.0/en/rs/tools/crc32.o crc32.c
msgbind.c:452:50: warning: if statement has empty body [-Wempty-body]
  if(argv[6][strlen(argv[6])-1]!=PATHSEP_DEFAULT);
                                                 ^
msgbind.c:452:50: note: put the semicolon on a separate line to silence this warning
1 warning generated.
/usr/local/libexec/ccache/world/cc -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -fstack-protector-strong  -s gnu/stripgcc.lnk -o freebsd12.0/en/rs/tools/msgbind ./freebsd12.0/en/rs/tools/filemode.o ./freebsd12.0/en/rs/tools/msgbind.o ./freebsd12.0/en/rs/tools/arjdata.o ./freebsd12.0/en/rs/tools/crc32.o 
./freebsd12.0/en/rs/tools/msgbind ./resource/resource.txt msg_crp UNIX s en ./freebsd12.0/en/rs
gmake[3]: *** [GNUmakefile:258: freebsd12.0/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/archivers/arj
*** Error code 1

Stop.
make: stopped in /usr/ports/archivers/arj

===>>> make build failed for archivers/arj
===>>> Aborting update
Comment 8 Renato Botelho freebsd_committer freebsd_triage 2019-07-17 11:59:49 UTC
(In reply to Peter Putzer from comment #7)
Please comment out CPUTYPE and CFLAGS lines from /etc/make.conf and try again
Comment 9 Peter Putzer 2019-07-18 21:08:16 UTC
(In reply to Renato Botelho from comment #8)

Same result.

[...]

/usr/local/libexec/ccache/world/cc -DARJUTIL -c -Ifreebsd12.0 -I./freebsd12.0/en/rs -I. -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -ofreebsd12.0/en/rs/tools/crc32.o crc32.c
msgbind.c:452:50: warning: if statement has empty body [-Wempty-body]
  if(argv[6][strlen(argv[6])-1]!=PATHSEP_DEFAULT);
                                                 ^
msgbind.c:452:50: note: put the semicolon on a separate line to silence this warning
1 warning generated.
/usr/local/libexec/ccache/world/cc -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -fstack-protector-strong  -s gnu/stripgcc.lnk -o freebsd12.0/en/rs/tools/msgbind ./freebsd12.0/en/rs/tools/filemode.o ./freebsd12.0/en/rs/tools/msgbind.o ./freebsd12.0/en/rs/tools/arjdata.o ./freebsd12.0/en/rs/tools/crc32.o 
./freebsd12.0/en/rs/tools/msgbind ./resource/resource.txt msg_crp UNIX s en ./freebsd12.0/en/rs
gmake[3]: *** [GNUmakefile:258: freebsd12.0/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/archivers/arj
*** Error code 1

Stop.
make: stopped in /usr/ports/archivers/arj
Comment 10 Walter Schwarzenfeld freebsd_triage 2019-08-08 14:03:02 UTC
msgbind.c:452:50: warning: if statement has empty body [-Wempty-body]
  if(argv[6][strlen(argv[6])-1]!=PATHSEP_DEFAULT);
                                                 ^
msgbind.c:452:50: note: put the semicolon on a separate line to silence this warning
1 warning generated.

Do what it want. Try to =>  put the semicolon on a separate line.

(althrough it is a warning, I remember a case, this simple thing "was it").
Comment 11 Walter Schwarzenfeld freebsd_triage 2019-08-08 14:26:37 UTC
What says MAKE_JOBS_UNSAFE=yes?
Comment 12 Walter Schwarzenfeld freebsd_triage 2019-08-08 14:32:08 UTC
(In reply to Renato Botelho from comment #4)
Btw, remove this
WITH_PKGNG=yes

it is not needed anymore.
Comment 13 Renato Botelho freebsd_committer freebsd_triage 2019-08-08 14:43:01 UTC
(In reply to Walter Schwarzenfeld from comment #10)
Actually, looking at the code I noted that ; shouldn't be there since the block looks like:

  if(argv[6][strlen(argv[6])-1]!=PATHSEP_DEFAULT);
  {
   strcat(target_i, pathsep);
   strcat(target_n, pathsep);
   strcat(target_f, pathsep);
   strcat(target_h, pathsep);
  }

I'm testing a patch to fix it.
Comment 14 Renato Botelho freebsd_committer freebsd_triage 2019-08-08 14:46:59 UTC
Created attachment 206371 [details]
Fix attempt

Can you please try attached patch?
Comment 15 Peter Putzer 2019-08-08 17:08:49 UTC
(In reply to Renato Botelho from comment #14)

I did, that fixed the warning, but unfortunately not the abort trap:

/usr/local/libexec/ccache/world/cc -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O3 -pipe -funroll-loops -march=native  -fstack-protector-strong -fno-strict-aliasing  -fstack-protector-strong  -s gnu/stripgcc.lnk -o freebsd12.0/en/rs/tools/msgbind ./freebsd12.0/en/rs/tools/filemode.o ./freebsd12.0/en/rs/tools/msgbind.o ./freebsd12.0/en/rs/tools/arjdata.o ./freebsd12.0/en/rs/tools/crc32.o 
./freebsd12.0/en/rs/tools/msgbind ./resource/resource.txt msg_crp UNIX s en ./freebsd12.0/en/rs
gmake[3]: *** [GNUmakefile:258: freebsd12.0/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'


I've tried MAKE_JOBS_UNSAFE=yes and disabling ccache, but neither has any effect on the result.
Comment 16 Walter Schwarzenfeld freebsd_triage 2019-08-08 17:18:39 UTC
 MAKE_JOBS_UNSAFE=yes has only the sense to mostly show more errors (hidden before in other threads).

Please, post build.log.
Comment 17 Walter Schwarzenfeld freebsd_triage 2019-08-08 17:20:00 UTC
Sorry, you posted one before.
Comment 18 Walter Schwarzenfeld freebsd_triage 2019-08-08 17:41:58 UTC
(In reply to Peter Putzer from comment #15)
-O3 -pipe -funroll-loops -march=native still in the code, please put them out (/etc/make.conf).
Comment 19 Peter Putzer 2019-08-08 18:15:35 UTC
(In reply to Walter Schwarzenfeld from comment #18)

It's in again, as that didn't make a difference. See comment #9 for a partial build log without it.
Comment 20 Walter Schwarzenfeld freebsd_triage 2019-08-08 18:25:25 UTC
Renato look at the error:

gmake[3]: *** [GNUmakefile:258: freebsd12.0/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'

and now the error of bug #239233:


gmake[3]: *** [GNUmakefile:258: freebsd12.0/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/basejail/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/basejail/usr/ports/archivers/arj/work/arj-3.10.22'
*** Error code 1

ports r506777 shows:


Version 17 of debian patches is not available anymore.  Upgrade it to use
version 21 and fix the build

Maybe, it is a similar problem?
Comment 21 Walter Schwarzenfeld freebsd_triage 2020-01-31 19:03:46 UTC
Is this still relevant?
Comment 22 Peter Putzer 2020-02-03 20:31:13 UTC
(In reply to Walter Schwarzenfeld from comment #21)

Yes. It is still happening on 12.1:

./freebsd12.1/en/rs/tools/msgbind ./resource/resource.txt msg_crp UNIX s en ./freebsd12.1/en/rs
gmake[3]: *** [GNUmakefile:258: freebsd12.1/en/rs/msg_crp.h] Abort trap
Comment 23 dewayne 2020-03-22 05:22:57 UTC
(In reply to Walter Schwarzenfeld from comment #21)
Partially, as I don't have the abort problem.  This is the issue I receive on 
FreeBSD 12.1-STABLE #0 r359159M: Sat Mar 21 13:31:04 AEDT 2020 i386
FreeBSD clang version 9.0.1 

msgbind.c:452:50: warning: if statement has empty body [-Wempty-body]
  if(argv[6][strlen(argv[6])-1]!=PATHSEP_DEFAULT);
                                                 ^
msgbind.c:452:50: note: put the semicolon on a separate line to silence this warning
1 warning generated.

There is no issue on amd64.

In my case, I just added USE_GCC= yes which compiled on both i386 & amd64, using 
gcc version 9.2.0

Perhaps using -Wno-empty-body would work?

I don't mean to hijack the thread, but this was raised within the context of compile issues with arj, and this is in addition to the abort problem.  Which I also can't reproduce in any of my c3-2, prescott, core2, ... builds.
Comment 24 dewayne 2020-03-22 05:27:57 UTC
sorry, I meant to add that my locale settings are:
# locale
LANG=en_AU.UTF-8
LC_CTYPE=C
LC_COLLATE=C
LC_TIME="en_AU.UTF-8"
LC_NUMERIC="en_AU.UTF-8"
LC_MONETARY="en_AU.UTF-8"
LC_MESSAGES="en_AU.UTF-8"
LC_ALL=
I suspect this may be relevant to the abort reproducability. And I use
# ld -v
GNU ld (GNU Binutils) 2.33.1
Comment 25 Renato Botelho freebsd_committer freebsd_triage 2020-04-14 13:36:21 UTC
(In reply to Peter Putzer from comment #22)
Can you try to spin up a VM running 12.x and see if you can reproduce it?  I'm thinking it's a local problem on your system since no one else can make it happen.
Comment 26 Peter Putzer 2020-04-14 15:29:58 UTC
(In reply to Renato Botelho from comment #25)

I'll see if I can do that. However, I just noticed one thing: The compilation fails in a jail (any of my jails). When I run the same command (portmaster archivers/arj) on the host, there is no problem.

There is no practical difference between make.conf files that I can see the compiler version used is the same. Could it be an issue with running the compilation in a jail at all?
Comment 27 Renato Botelho freebsd_committer freebsd_triage 2020-04-14 17:30:21 UTC
(In reply to Peter Putzer from comment #26)
poudriere, the software used by me for testing and also used by portmgr to build official packages, builds everything inside a jail.

Do you have any special configurations on these jails?
Comment 28 Peter Putzer 2020-04-16 06:49:08 UTC
(In reply to Renato Botelho from comment #27)

Not that I know of. These are ezjail jails, so they have been around for some time.

I use freebsd-udpate to update/upgrade them at the same time as the host. The conf file for the basejail looks like this:

[...]
Components world/base 
IgnorePaths /etc /root /var /usr/games /usr/home /usr/local /usr/obj /usr/tests
StrictComponents yes

And for the individual jails themselves:

[...]
Components world/base
IgnorePaths /bin /boot /home /lib /libexec /proc /rescue /sbin /sys /tmp \
/usr/bin /usr/sbin /usr/include /usr/lib /usr/lib32 /usr/libdata /usr/libexec \
/usr/share /usr/src
StrictComponents yes
MergeChanges /etc/ /boot/device.hints
BackupKernel no

Anything obvious there?
Comment 29 dewayne 2020-04-25 01:08:56 UTC
(In reply to Peter Putzer from comment #28)
Peter, I was in the same boat.  Nothing changed with respect to archivers/arj and yes, I also build everything within a jail.

I'm able to successfully build with gcc9.3.0 on FreeBSD 12.1-STABLE #0 r359973M.

Renato, I use jails that are completely clean and start the whole build of the tree, so I often find problems quite early.  This for me is important as some port maintainers dont increment the port version numbers after changes.

For reference I have been using the following for quite some time (years), with the occassional tweak (last month I added -fno-common):
CFLAGS=-O2 -pipe -Wl,-m,elf_x86_64_fbsd -Wl,--strip-debug -Wl,--build-id=md5 -Wl,--hash-style=sysv -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 -fno-math-errno -fno-signaling-nans -fPIE -fPIC -fomit-frame-pointer -Wl,-rpath=/usr/local/lib/gcc9 -fno-asynchronous-unwind-tables -fno-common -march=haswell  -fstack-protector-strong -fno-strict-aliasing
LDFLAGS=-Wl,--strip-debug -Wl,--build-id=md5 -Wl,--hash-style=sysv -pie -Wl,-rpath=/usr/local/lib/gcc9 -L/usr/local/lib/gcc9 -fstack-protector

and build defaults. This is successful on amd64 and i386, with gcc.
Comment 30 Peter Putzer 2020-04-30 08:31:42 UTC
(In reply to dewayne from comment #29)

I don't have gcc installed (and I'd prefer to keep it that way for simplicity's sake). I've since checked the basejail and noticed that some old lib32 files were installed. Unfortunately, updating them did not change anything for the jail build results. 

I really don't see what's different from the host build environment.
Comment 31 Terr 2020-06-08 11:46:38 UTC
Hi,

I am having the same issue when compiling this port in an ezjail.

The machine that I'm working on is a VM running via VirtualBox and is controlled by Vagrant (using the 'generic/freebsd12' box). The system is clean except for an installation of ezjail.

I just tried compiling it again with a new jail after reading this issue to isolate any changes made in my previous jail, but the error ("Abort trap") keeps happening.

All dependencies were built with the default settings (minus docs and examples).

Error output:
---
make clean
...
MAKE_JOBS_UNSAFE=yes make install
...
cc -DLOCALE=LANG_en -DLOCALE_DESC="\"en\"" -DPKGLIBDIR="\"/usr/local/lib/arj\"" -D_UNIX -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -fstack-protector-strong  -s gnu/stripgcc.lnk -o freebsd12.1/en/rs/tools/msgbind ./freebsd12.1/en/rs/tools/filemode.o ./freebsd12.1/en/rs/tools/msgbind.o ./freebsd12.1/en/rs/tools/arjdata.o ./freebsd12.1/en/rs/tools/crc32.o
./freebsd12.1/en/rs/tools/msgbind ./resource/resource.txt msg_crp UNIX s en ./freebsd12.1/en/rs
gmake[3]: *** [GNUmakefile:258: freebsd12.1/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/basejail/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/basejail/usr/ports/archivers/arj/work/arj-3.10.22'
*** Error code 1

Stop.
make[1]: stopped in /basejail/usr/ports/archivers/arj
*** Error code 1

Stop.
make: stopped in /basejail/usr/ports/archivers/arj
---

Some system information that I hope is useful:

uname -a: FreeBSD arjtest 12.1-RELEASE FreeBSD 12.1-RELEASE r354233 GENERIC  amd64

rc.conf:
---
ifconfig_DEFAULT="SYNCDHCP"
ifconfig_em0="SYNCDHCP"
ipv6_network_interfaces="none"
sshd_enable="YES"
dumpdev="NO"
firstboot_growfs_enable="YES"
firstboot_pkgs_enable="YES"
ifconfig_em1="inet 10.6.66.42 netmask 255.255.255.0"
vboxguest_enable="YES"
vboxservice_enable="YES"
rpcbind_enable="YES"
rpc_lockd_enable="YES"
nfs_client_enable="YES"

ezjail_enable="YES"
cloned_interfaces="lo1"
ipv4_addrs_lo1="172.16.0.1-6/29"
pf_enable="YES"
---

env:
---
USER=root
LOGNAME=root
HOME=/root
SHELL=/bin/csh
BLOCKSIZE=K
MAIL=/var/mail/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
TERM=screen
HOSTTYPE=FreeBSD
VENDOR=amd
OSTYPE=FreeBSD
MACHTYPE=x86_64
SHLVL=1
PWD=/basejail/usr/ports/archivers/arj
GROUP=wheel
HOST=arjtest
EDITOR=vi
PAGER=less
---

I don't have any custom ezjail configuration.
Comment 32 Terr 2020-06-08 12:18:45 UTC
Quick update: compiling it as a debug build (make DEBUG=1 ...) produces a msgbind program that doesn't crash.
Comment 33 Pablo Murillo 2020-10-15 15:36:52 UTC
Same problem

FreeBSD 12.1-RELEASE-p10 GENERIC amd64

On the host, compile without problems, inside the jail, the same problem

GNU Make 4.3
Built for amd64-portbld-freebsd12.1


===>  Building for arj-3.10.22_8
gmake[2]: Entering directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
mkdir -p ./freebsd12.1/en/rs
mkdir -p ./freebsd12.1/en/rs/tools
mkdir -p ./freebsd12.1/en/rs/arjcrypt
mkdir -p ./freebsd12.1/en/rs/sfxstub
mkdir -p ./freebsd12.1/en/rs/arjsfxv
mkdir -p ./freebsd12.1/en/rs/arjsfx
mkdir -p ./freebsd12.1/en/rs/arjsfxjr
mkdir -p ./freebsd12.1/en/rs/arj
mkdir -p ./freebsd12.1/en/rs/rearj
mkdir -p ./freebsd12.1/en/rs/register
mkdir -p ./freebsd12.1/en/rs/arjdisp
gmake msg-headers
gmake[3]: Entering directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
./freebsd12.1/en/rs/tools/msgbind ./resource/resource.txt msg_crp UNIX s en ./freebsd12.1/en/rs
gmake[3]: *** [GNUmakefile:258: freebsd12.1/en/rs/msg_crp.h] Abort trap
gmake[3]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
gmake[2]: *** [GNUmakefile:169: all] Error 2
gmake[2]: Leaving directory '/var/ports/usr/ports/archivers/arj/work/arj-3.10.22'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/archivers/arj
*** Error code 1

Stop.
make: stopped in /usr/ports/archivers/ar
Comment 34 Andrew 2021-01-02 19:37:27 UTC
Same problem here (trying to compile in a FreeBSD 12.2 jail, managed by ezjail): build completes successfully only with the DEBUG option set.
Comment 35 commit-hook freebsd_committer freebsd_triage 2022-08-31 10:15:42 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0f379164c78d57e213a306f6a26d06a5cb07019e

commit 0f379164c78d57e213a306f6a26d06a5cb07019e
Author:     Renato Botelho <garga@FreeBSD.org>
AuthorDate: 2022-08-31 09:57:25 +0000
Commit:     Renato Botelho <garga@FreeBSD.org>
CommitDate: 2022-08-31 10:14:45 +0000

    archivers/arj: Fix build inside ezjail

    For yet unclear reason this port was failing to build inside a jail
    built using ezjail.  It ended up producing a broken msgbind binary that
    crashes early with 'Abort trap' message.

    ezjail built jail uses lots of symlinks pointing to a nullfs mounted
    partition and this combination seems to be the cause of this issue.

    After many tests jsm@ figured out that removing LD_STRIP definition from
    gnu/configure script solves the case.  There is still something wrong,
    maybe on nullfs code, that should be investigated, but at least it fixes
    this port build.

    PR:             235636
    Reported by:    Peter Putzer <freebsd@mnd.sc>
    Sponsored by:   Rubicon Communications, LLC ("Netgate")

 archivers/arj/Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
Comment 36 Jesper Schmitz Mouridsen freebsd_committer freebsd_triage 2022-08-31 12:51:11 UTC
(In reply to commit-hook from comment #35)

It seems to be a /usr/bin/ld vs /usr/local/bin/ld.bfd vs /usr/local/bin/ld issue. the former - choosen only when realpath of cc is not /usr/bin/cc e.g /basejail/usr/bin/cc - strips the msgbind binary while the later skips that or does it in a non breakong way. It also happens outside jails and without nullfs.
output here https://gist.github.com/jsm222/9726ba1e71b1aeaab9fbaee3b5ca8c15.