Bug 248493 - devel/gettext-runtime: build fails on (at least) 11-stable/amd64
Summary: devel/gettext-runtime: build fails on (at least) 11-stable/amd64
Status: Closed Works As Intended
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Tijl Coosemans
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-08-05 22:32 UTC by John Hein
Modified: 2020-08-06 18:11 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (tijl)


Attachments
config.log on 11.4 (327.07 KB, text/plain)
2020-08-06 18:07 UTC, John Hein
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description John Hein 2020-08-05 22:32:11 UTC
uname -aUK
FreeBSD j11b-clean 11.2-STABLE FreeBSD 11.2-STABLE 1102504 amd64 1102504 1102504


cc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I..  -I../intl -I../intl  -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -DLIBICONV_PLUG -D_THREAD_SAFE  -O2 -pipe  -DLIBICONV_PLUG -fstack-protector-strong -fno-strict-aliasing -c -o sigprocmask.o sigprocmask.c
sigprocmask.c:123:20: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'int')
      return (*set >> sig) & 1;
              ~~~~ ^  ~~~
sigprocmask.c:132:8: error: assigning to 'sigset_t' (aka 'struct __sigset') from incompatible type 'int'
  *set = 0;
       ^ ~
sigprocmask.c:146:12: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'unsigned int')
      *set |= 1U << sig;
      ~~~~ ^  ~~~~~~~~~
sigprocmask.c:166:12: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'unsigned int')
      *set &= ~(1U << sig);
      ~~~~ ^  ~~~~~~~~~~~~
sigprocmask.c:180:8: error: assigning to 'sigset_t' (aka 'struct __sigset') from incompatible type 'unsigned int'
  *set = ((2U << (NSIG - 1)) - 1) & ~ SIGABRT_COMPAT_MASK;
       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sigprocmask.c:207:12: error: initializing 'sigset_t' (aka 'struct __sigset') with an expression of incompatible type 'int'
  sigset_t pending = 0;
           ^         ~
sigprocmask.c:236:41: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'sigset_t')
          new_blocked_set = blocked_set | *set;
                            ~~~~~~~~~~~ ^ ~~~~
sigprocmask.c:242:43: error: invalid argument type 'sigset_t' (aka 'struct __sigset') to unary expression
          new_blocked_set = blocked_set & ~*set;
                                          ^~~~~
sigprocmask.c:248:34: error: invalid argument type 'sigset_t' (aka 'struct __sigset') to unary expression
      to_unblock = blocked_set & ~new_blocked_set; 
                                 ^~~~~~~~~~~~~~~~
sigprocmask.c:249:36: error: invalid argument type 'sigset_t' (aka 'struct __sigset') to unary expression
      to_block = new_blocked_set & ~blocked_set;
                                   ^~~~~~~~~~~~
sigprocmask.c:251:20: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'int')
      if (to_block != 0)
          ~~~~~~~~ ^  ~
sigprocmask.c:256:27: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'int')
            if ((to_block >> sig) & 1)
                 ~~~~~~~~ ^  ~~~
sigprocmask.c:260:31: error: invalid operands to binary expression ('volatile sigset_t' (aka 'volatile struct __sigset') and 'unsigned int')
                  blocked_set |= 1U << sig;
                  ~~~~~~~~~~~ ^  ~~~~~~~~~
sigprocmask.c:264:22: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'int')
      if (to_unblock != 0)
          ~~~~~~~~~~ ^  ~
sigprocmask.c:270:29: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'int')
            if ((to_unblock >> sig) & 1)
                 ~~~~~~~~~~ ^  ~~~
sigprocmask.c:278:29: error: invalid operands to binary expression ('volatile sigset_t' (aka 'volatile struct __sigset') and 'unsigned int')
                blocked_set &= ~(1U << sig);
                ~~~~~~~~~~~ ^  ~~~~~~~~~~~~
sigprocmask.c:307:23: error: invalid operands to binary expression ('sigset_t' (aka 'struct __sigset') and 'unsigned int')
      if (blocked_set & (1U << sig))
          ~~~~~~~~~~~ ^ ~~~~~~~~~~~
17 errors generated.
*** Error code 1

Stop.
make[5]: stopped in /wrkdirs/usr/ports/devel/gettext-runtime/work/gettext-0.21/gettext-runtime/gnulib-lib
*** Error code 1
Comment 1 John Hein 2020-08-05 22:36:03 UTC
(In reply to John Hein from comment #0)
That was in an older poudriere 11.2 jail.

It happens in 11.4 as well.
Comment 2 Tijl Coosemans freebsd_committer 2020-08-06 07:47:07 UTC
Can you attach config.log?
Comment 3 VVD 2020-08-06 08:02:38 UTC
(In reply to John Hein from comment #1)
> It happens in 11.4 as well.
Build without errors on my 3 VMs with 11.4.
Comment 4 Tijl Coosemans freebsd_committer 2020-08-06 09:28:47 UTC
(In reply to VVD from comment #3)
Thanks.

I'm surprised to see this error because sigprocmask.c is built only if some configure check fails, but this check should be skipped in FreeBSD ports because /usr/ports/Templates/config.site provides a cached result.  There was a problem with that file but I fixed that before committing the gettext update.  Check that it is up-to-date.  The output of "grep sigprocmask /usr/ports/Templates/config.site" should be:

: ${ac_cv_func_sigprocmask=yes}
: ${ac_cv_have_decl_sigprocmask=yes}
: ${gl_cv_func_sigprocmask=yes}
: ${gl_cv_have_raw_decl_sigprocmask=yes}
Comment 5 John Hein 2020-08-06 18:07:49 UTC
Created attachment 217055 [details]
config.log on 11.4

(In reply to Tijl Coosemans from comment #2)
Attached, but probably unnecessary because of ...

(In reply to Tijl Coosemans from comment #4)
Ah... I missed that because it was a separate commit (and I didn't update my entire ports tree - sorry about that).  I will verify and close (assuming it will work after the config.site update).
Comment 6 John Hein 2020-08-06 18:11:56 UTC
Indeed.  After updating config.site, all is well.  Again, sorry for the false alarm.