All of lore.kernel.org
 help / color / mirror / Atom feed
* xtables-addons-3.17 fail build on armv7 with musl libc
@ 2021-03-08 21:02 Milan P. Stanić
  2021-03-11 16:18 ` Jan Engelhardt
  0 siblings, 1 reply; 3+ messages in thread
From: Milan P. Stanić @ 2021-03-08 21:02 UTC (permalink / raw)
  To: netfilter-devel

Hi,

[ I'm not subscribed so please Cc include me in reply ]

I'm trying to fix build of xtables-addons-3.17 on Alpine Linux which is
based on musl libc. Build pass on our x86, x86_64, aarch64, ppc64le and
s390x arches but fails on armv7. Here is excerpt from build log.

-------------------------
  CC [M]  /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/xt_ipp2p.o
In file included from ./arch/arm/include/asm/div64.h:127,
                 from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c: In function 'has_logged_during_this_minute':
./include/asm-generic/div64.h:226:28: warning: comparison of distinct pointer types lacks a cast
  226 |  (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
      |                            ^~
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:346:9: note: in expansion of macro 'do_div'
  346 |  return do_div(y, 60) == do_div(x, 60);
      |         ^~~~~~
In file included from ./include/linux/kernel.h:11,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./include/asm-generic/div64.h:239:25: warning: right shift count >= width of type [-Wshift-count-overflow]
  239 |  } else if (likely(((n) >> 32) == 0)) {  \
      |                         ^~
./include/linux/compiler.h:77:40: note: in definition of macro 'likely'
   77 | # define likely(x) __builtin_expect(!!(x), 1)
      |                                        ^
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:346:9: note: in expansion of macro 'do_div'
  346 |  return do_div(y, 60) == do_div(x, 60);
      |         ^~~~~~
In file included from ./arch/arm/include/asm/div64.h:127,
                 from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./include/asm-generic/div64.h:243:22: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
  243 |   __rem = __div64_32(&(n), __base); \
      |                      ^~~~
      |                      |
      |                      long unsigned int *
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:346:9: note: in expansion of macro 'do_div'
  346 |  return do_div(y, 60) == do_div(x, 60);
      |         ^~~~~~
In file included from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./arch/arm/include/asm/div64.h:33:45: note: expected 'uint64_t *' {aka 'long long unsigned int *'} but argument is of type 'long unsigned int *'
   33 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
      |                                   ~~~~~~~~~~^
In file included from ./arch/arm/include/asm/div64.h:127,
                 from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./include/asm-generic/div64.h:226:28: warning: comparison of distinct pointer types lacks a cast
  226 |  (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
      |                            ^~
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:346:26: note: in expansion of macro 'do_div'
  346 |  return do_div(y, 60) == do_div(x, 60);
      |                          ^~~~~~
In file included from ./include/linux/kernel.h:11,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./include/asm-generic/div64.h:239:25: warning: right shift count >= width of type [-Wshift-count-overflow]
  239 |  } else if (likely(((n) >> 32) == 0)) {  \
      |                         ^~
./include/linux/compiler.h:77:40: note: in definition of macro 'likely'
   77 | # define likely(x) __builtin_expect(!!(x), 1)
      |                                        ^
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:346:26: note: in expansion of macro 'do_div'
  346 |  return do_div(y, 60) == do_div(x, 60);
      |                          ^~~~~~
In file included from ./arch/arm/include/asm/div64.h:127,
                 from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./include/asm-generic/div64.h:243:22: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
  243 |   __rem = __div64_32(&(n), __base); \
      |                      ^~~~
      |                      |
      |                      long unsigned int *
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:346:26: note: in expansion of macro 'do_div'
  346 |  return do_div(y, 60) == do_div(x, 60);
      |                          ^~~~~~
In file included from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./arch/arm/include/asm/div64.h:33:45: note: expected 'uint64_t *' {aka 'long long unsigned int *'} but argument is of type 'long unsigned int *'
   33 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
      |                                   ~~~~~~~~~~^
In file included from ./arch/arm/include/asm/div64.h:127,
                 from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c: In function 'has_secret':
./include/asm-generic/div64.h:226:28: warning: comparison of distinct pointer types lacks a cast
  226 |  (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
      |                            ^~
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:740:14: note: in expansion of macro 'do_div'
  740 |  epoch_min = do_div(x, 60);
      |              ^~~~~~
In file included from ./include/linux/kernel.h:11,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./include/asm-generic/div64.h:239:25: warning: right shift count >= width of type [-Wshift-count-overflow]
  239 |  } else if (likely(((n) >> 32) == 0)) {  \
      |                         ^~
./include/linux/compiler.h:77:40: note: in definition of macro 'likely'
   77 | # define likely(x) __builtin_expect(!!(x), 1)
      |                                        ^
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:740:14: note: in expansion of macro 'do_div'
  740 |  epoch_min = do_div(x, 60);
      |              ^~~~~~
In file included from ./arch/arm/include/asm/div64.h:127,
                 from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./include/asm-generic/div64.h:243:22: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
  243 |   __rem = __div64_32(&(n), __base); \
      |                      ^~~~
      |                      |
      |                      long unsigned int *
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:740:14: note: in expansion of macro 'do_div'
  740 |  epoch_min = do_div(x, 60);
      |              ^~~~~~
In file included from ./include/linux/kernel.h:19,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
./arch/arm/include/asm/div64.h:33:45: note: expected 'uint64_t *' {aka 'long long unsigned int *'} but argument is of type 'long unsigned int *'
   33 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
      |                                   ~~~~~~~~~~^
  CC [M]  /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/xt_ipv4options.o
  CC [M]  /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/xt_length2.o
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:279: /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.o] Error 1
make[2]: *** [scripts/Makefile.build:496: /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1801: /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.10.20-0-lts'
make: *** [Makefile:465: modules] Error 2
>>> ERROR: xtables-addons-lts: build failed
>
-------------------------

I crated this patch just below to fix this:
-------------------------

--- a/extensions/pknock/xt_pknock.c	2021-02-28 16:54:20.000000000 +0000
+++ b/extensions/pknock/xt_pknock.c	2021-03-07 10:10:54.375466285 +0000
@@ -247,7 +247,7 @@
 			seq_printf(s, "expir_time=%lu [secs] ", time);
 		}
 		if (peer->status == ST_ALLOWED && rule->autoclose_time != 0) {
-			unsigned long x = ktime_get_seconds();
+			unsigned long long x = ktime_get_seconds();
 			unsigned long y = peer->login_sec + rule->autoclose_time * 60;
 			time = 0;
 			if (time_before(x, y))
@@ -311,7 +311,7 @@
 static inline bool
 autoclose_time_passed(const struct peer *peer, unsigned int autoclose_time)
 {
-	unsigned long x, y;
+	unsigned long long x, y;
 	if (peer == NULL || autoclose_time == 0)
 		return false;
 	x = ktime_get_seconds();
@@ -338,7 +338,7 @@
 static inline bool
 has_logged_during_this_minute(const struct peer *peer)
 {
-	unsigned long x, y;
+	unsigned long long x, y;
 	if (peer == NULL)
 		return 0;
 	x = ktime_get_seconds();
@@ -717,7 +717,7 @@
 	unsigned int hexa_size;
 	int ret;
 	bool fret = false;
-	unsigned long x;
+	unsigned long long x;
 	unsigned int epoch_min;
 
 	if (payload_len == 0)
-------------------------

With this patch it builds but I've got warnings about pointer types

-------------------------

CC [M]  /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/xt_iface.o
In file included from ./include/linux/irqflags.h:15,
                 from ./arch/arm/include/asm/bitops.h:28,
                 from ./include/linux/bitops.h:29,
                 from ./include/linux/kernel.h:12,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:12,
                 from /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:10:
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c: In function 'pknock_seq_show':
./include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
   12 |  (void)(&__dummy == &__dummy2); \
      |                  ^~
./include/linux/jiffies.h:106:3: note: in expansion of macro 'typecheck'
  106 |   typecheck(unsigned long, b) && \
      |   ^~~~~~~~~
./include/linux/jiffies.h:108:26: note: in expansion of macro 'time_after'
  108 | #define time_before(a,b) time_after(b,a)
      |                          ^~~~~~~~~~
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:253:8: note: in expansion of macro 'time_before'
  253 |    if (time_before(x, y))
      |        ^~~~~~~~~~~
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c: In function 'autoclose_time_passed':
./include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
   12 |  (void)(&__dummy == &__dummy2); \
      |                  ^~
./include/linux/jiffies.h:105:3: note: in expansion of macro 'typecheck'
  105 |  (typecheck(unsigned long, a) && \
      |   ^~~~~~~~~
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:319:9: note: in expansion of macro 'time_after'
  319 |  return time_after(x, y);
      |         ^~~~~~~~~~
./include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
   12 |  (void)(&__dummy == &__dummy2); \
      |                  ^~
./include/linux/jiffies.h:106:3: note: in expansion of macro 'typecheck'
  106 |   typecheck(unsigned long, b) && \
      |   ^~~~~~~~~
/home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/pknock/xt_pknock.c:319:9: note: in expansion of macro 'time_after'
  319 |  return time_after(x, y);
      |         ^~~~~~~~~~
  CC [M]  /home/mps/aports/main/xtables-addons-lts/src/xtables-addons-3.17/extensions/xt_ipp2p.o
 
-------------------------

musl libc is 1.2.2 version and gcc is 10.2 with some patches.

TIA


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: xtables-addons-3.17 fail build on armv7 with musl libc
  2021-03-08 21:02 xtables-addons-3.17 fail build on armv7 with musl libc Milan P. Stanić
@ 2021-03-11 16:18 ` Jan Engelhardt
  2021-03-12 13:13   ` Milan P. Stanić
  0 siblings, 1 reply; 3+ messages in thread
From: Jan Engelhardt @ 2021-03-11 16:18 UTC (permalink / raw)
  To: Milan P. Stanić; +Cc: Netfilter Developer Mailing List, Paolo Pisati

On Monday 2021-03-08 22:02, Milan P. Stanić wrote:

>I'm trying to fix build of xtables-addons-3.17 on Alpine Linux which is
>based on musl libc. Build pass on our x86, x86_64, aarch64, ppc64le and
>s390x arches but fails on armv7. Here is excerpt from build log.
>
>   33 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
>      |                                   ~~~~~~~~~~^

I have addresses the issue in v3.18 now. No new warnings have shown to me with
regards to time_after.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: xtables-addons-3.17 fail build on armv7 with musl libc
  2021-03-11 16:18 ` Jan Engelhardt
@ 2021-03-12 13:13   ` Milan P. Stanić
  0 siblings, 0 replies; 3+ messages in thread
From: Milan P. Stanić @ 2021-03-12 13:13 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Netfilter Developer Mailing List, Paolo Pisati

Hi,

On Thu, 2021-03-11 at 17:18, Jan Engelhardt wrote:
> On Monday 2021-03-08 22:02, Milan P. Stanić wrote:
> 
> >I'm trying to fix build of xtables-addons-3.17 on Alpine Linux which is
> >based on musl libc. Build pass on our x86, x86_64, aarch64, ppc64le and
> >s390x arches but fails on armv7. Here is excerpt from build log.
> >
> >   33 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
> >      |                                   ~~~~~~~~~~^
> 
> I have addresses the issue in v3.18 now. No new warnings have shown to me with
> regards to time_after.

Yes, it works now without any warning or error. Thanks

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-12 13:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-08 21:02 xtables-addons-3.17 fail build on armv7 with musl libc Milan P. Stanić
2021-03-11 16:18 ` Jan Engelhardt
2021-03-12 13:13   ` Milan P. Stanić

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.