Bug 7244 - busybox 1.21.1 doesn't compile on old Linux distributions due to new PACKET_AUXDATA usage
Summary: busybox 1.21.1 doesn't compile on old Linux distributions due to new PACKET_A...
Status: RESOLVED WONTFIX
Alias: None
Product: Busybox
Classification: Unclassified
Component: Other (show other bugs)
Version: 1.21.x
Hardware: PC Linux
: P5 blocker
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-29 16:19 UTC by bruno
Modified: 2016-05-16 20:52 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description bruno 2014-06-29 16:19:07 UTC
When trying to compile busybox 1.21.1 on RHEL 3 or 4, or SLES 9 (as well as some others), there are compilation errors:

[sles-9-i386] In file included from networking/udhcp/dhcpc.c:29:
[sles-9-i386] /usr/include/linux/filter.h:21: error: parse error before "__u16"
[sles-9-i386] /usr/include/linux/filter.h:23: error: parse error before "jf"
[sles-9-i386] /usr/include/linux/filter.h:24: error: parse error before "k"
[sles-9-i386] networking/udhcp/dhcpc.c: In function `udhcp_recv_raw_packet':
[sles-9-i386] networking/udhcp/dhcpc.c:839: error: invalid application of `sizeof' to an incomplete type
[sles-9-i386] networking/udhcp/dhcpc.c:903: error: `PACKET_AUXDATA' undeclared (first use in this function)
[sles-9-i386] networking/udhcp/dhcpc.c:903: error: (Each undeclared identifier is reported only once
[sles-9-i386] networking/udhcp/dhcpc.c:903: error: for each function it appears in.)
[sles-9-i386] networking/udhcp/dhcpc.c:909: error: dereferencing pointer to incomplete type
[sles-9-i386] networking/udhcp/dhcpc.c: In function `udhcp_raw_socket':
[sles-9-i386] networking/udhcp/dhcpc.c:991: error: elements of array `filter_instr' have incomplete type
[sles-9-i386] networking/udhcp/dhcpc.c:993: warning: excess elements in struct initializer
[...]
[sles-9-i386] networking/udhcp/dhcpc.c:991: error: storage size of `filter_instr' isn't known
[sles-9-i386] networking/udhcp/dhcpc.c:1014: error: initializer element is not constant
[sles-9-i386] networking/udhcp/dhcpc.c:1014: error: (near initialization for `filter_prog.filter')
[sles-9-i386] networking/udhcp/dhcpc.c:1035: error: `PACKET_AUXDATA' undeclared (first use in this function)
[sles-9-i386] networking/udhcp/dhcpc.c:991: warning: unused variable `filter_instr'
[sles-9-i386] make[1]: *** [networking/udhcp/dhcpc.o] Error 1
[sles-9-i386] make: *** [networking/udhcp] Error 2

Declaring PACKET_AUXDATA to its value isn't sufficient as some undeclared types are also used:

[rhel-4-x86_64] In file included from networking/udhcp/dhcpc.c:29:
[rhel-4-x86_64] /usr/include/linux/filter.h:21: error: syntax error before "__u16"
[rhel-4-x86_64] /usr/include/linux/filter.h:23: error: syntax error before "jf"
[rhel-4-x86_64] /usr/include/linux/filter.h:24: error: syntax error before "k"
[rhel-4-x86_64] networking/udhcp/dhcpc.c: In function `udhcp_recv_raw_packet':
[rhel-4-x86_64] networking/udhcp/dhcpc.c:839: error: invalid application of `sizeof' to incomplete type `tpacket_auxdata' 
[rhel-4-x86_64] networking/udhcp/dhcpc.c:913: error: dereferencing pointer to incomplete type
[rhel-4-x86_64] networking/udhcp/dhcpc.c: In function `udhcp_raw_socket':
[rhel-4-x86_64] networking/udhcp/dhcpc.c:995: error: elements of array `filter_instr' have incomplete type
[rhel-4-x86_64] networking/udhcp/dhcpc.c:997: warning: excess elements in struct initializer
[...]
[rhel-4-x86_64] networking/udhcp/dhcpc.c:995: error: storage size of 'filter_instr' isn't known
[rhel-4-x86_64] networking/udhcp/dhcpc.c:1018: error: initializer element is not constant
[rhel-4-x86_64] networking/udhcp/dhcpc.c:1018: error: (near initialization for `filter_prog.filter')
[rhel-4-x86_64] networking/udhcp/dhcpc.c:995: warning: unused variable `filter_instr'
[rhel-4-x86_64] make[1]: *** [networking/udhcp/dhcpc.o] Error 1
[rhel-4-x86_64] make: *** [networking/udhcp] Error 2

Not tried yet with 1.22.1 but none of the patches available seem to address this issue, thus this bug report.
Comment 1 Denys Vlasenko 2014-06-30 11:27:48 UTC
Both those releases are nearly 10 years old.