Re: Documentation oddity.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ged,

On Tue, Mar 11, 2025 at 10:00:04AM +0000, G.W. Haywood wrote:
>
> Debian 11, gcc version 10.2.1-6 here.
>
> 8<----------------------------------------------------------------------
> $ gcc -g3 -gdwarf-4 -Wall -lmnl -lnetfilter_queue -o nf-queue nf-queue.c
> /usr/bin/ld: /tmp/ccbLJv89.o: in function `nfq_send_verdict':
> /home/ged/nf-queue.c:30: undefined reference to `nfq_nlmsg_put'
> /usr/bin/ld: /home/ged/nf-queue.c:31: undefined reference to `nfq_nlmsg_verdict_put'
> /usr/bin/ld: /home/ged/nf-queue.c:34: undefined reference to `mnl_attr_nest_start'
> /usr/bin/ld: /home/ged/nf-queue.c:37: undefined reference to `mnl_attr_put_u32'
> /usr/bin/ld: /home/ged/nf-queue.c:41: undefined reference to `mnl_attr_nest_end'
> /usr/bin/ld: /home/ged/nf-queue.c:43: undefined reference to `mnl_socket_sendto'
> /usr/bin/ld: /tmp/ccbLJv89.o: in function `queue_cb':
> /home/ged/nf-queue.c:60: undefined reference to `nfq_nlmsg_parse'
> /usr/bin/ld: /home/ged/nf-queue.c:65: undefined reference to `mnl_nlmsg_get_payload'
> /usr/bin/ld: /home/ged/nf-queue.c:75: undefined reference to `mnl_attr_get_payload'
> /usr/bin/ld: /home/ged/nf-queue.c:78: undefined reference to `mnl_attr_get_payload_len'
> /usr/bin/ld: /home/ged/nf-queue.c:93: undefined reference to `mnl_attr_get_u32'
> /usr/bin/ld: /home/ged/nf-queue.c:97: undefined reference to `mnl_attr_get_u32'
> /usr/bin/ld: /home/ged/nf-queue.c:111: undefined reference to `mnl_attr_get_payload'
> /usr/bin/ld: /tmp/ccbLJv89.o: in function `main':
> /home/ged/nf-queue.c:162: undefined reference to `mnl_socket_open'
> /usr/bin/ld: /home/ged/nf-queue.c:168: undefined reference to `mnl_socket_bind'
> /usr/bin/ld: /home/ged/nf-queue.c:172: undefined reference to `mnl_socket_get_portid'
> /usr/bin/ld: /home/ged/nf-queue.c:184: undefined reference to `nfq_nlmsg_put'
> /usr/bin/ld: /home/ged/nf-queue.c:185: undefined reference to `nfq_nlmsg_cfg_put_cmd'
> /usr/bin/ld: /home/ged/nf-queue.c:187: undefined reference to `mnl_socket_sendto'
> /usr/bin/ld: /home/ged/nf-queue.c:195: undefined reference to `nfq_nlmsg_put'
> /usr/bin/ld: /home/ged/nf-queue.c:196: undefined reference to `nfq_nlmsg_cfg_put_params'
> /usr/bin/ld: /home/ged/nf-queue.c:198: undefined reference to `mnl_attr_put_u32'
> /usr/bin/ld: /home/ged/nf-queue.c:199: undefined reference to `mnl_attr_put_u32'
> /usr/bin/ld: /home/ged/nf-queue.c:201: undefined reference to `mnl_socket_sendto'
> /usr/bin/ld: /home/ged/nf-queue.c:211: undefined reference to `mnl_socket_setsockopt'
> /usr/bin/ld: /home/ged/nf-queue.c:217: undefined reference to `mnl_socket_recvfrom'
> /usr/bin/ld: /home/ged/nf-queue.c:223: undefined reference to `mnl_cb_run'
> collect2: error: ld returned 1 exit status
> 8<----------------------------------------------------------------------
>
nf-queue.c has compiled fine.

There is a problem with the shared libraries libmnl.so and
libnetfilter_queue.so. Those 2 libraries should satisfy the mnl_ and nfq_
references respectively.

On my (Slackware x86_64) system, "nm -D /usr/lib64/libmnl.so|grep -Ew T" gives:
| 0000000000003687 T mnl_attr_get_len@@LIBMNL_1.0
| 00000000000036ac T mnl_attr_get_payload@@LIBMNL_1.0
| 0000000000003698 T mnl_attr_get_payload_len@@LIBMNL_1.0
| ...
for a total of 68 lines. What do you get? (you may have to put /usr/lib instead
of /usr/lib64).
>
> $ gcc --version | head -n1
> gcc (Debian 10.2.1-6) 10.2.1 20210110

Same as my Debian 11.5 VM.
>
> This is a raspberry Pi4B, 8GBytes, 64 bit.
>
> 8<----------------------------------------------------------------------
> $ uname -a
> Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
> $ 8<----------------------------------------------------------------------

Looks like an arm-specific problem. nm output should tell us more.
>
> There were other problems when I tried the same thing on x86, but that
> was gcc version 8, so I think they can be ignored.

gcc-8 should be fine. Please document these problems also.

Cheers ... Duncan.




[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux