| Summary: | libnet-1.1.0 does not set the DEFINES macro correctly | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Brandy Westcott (RETIRED) <brandy> |
| Component: | Current packages | Assignee: | SpanKY <vapier> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Bug Depends on: | |||
| Bug Blocks: | 28982 | ||
Looking closer it seems that the check for machine endianess is now deprecated in the configure script. From the libnet-1.1.0-beta1 changelog: The libnet-config script is no longer needed to specify machine endianess -- that has been moved to libnet.h and done at compile time. You can still use it to specify other CPP constants as well as libraries. fixed in cvs |
In libnet-1.1.0 the configure script will determine the LIBNET_CONFIG_DEFINES macro. One of the first tests is to determine the machine's "endianess": if test $ac_cv_libnet_endianess = big ; then ..... LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_BIG_ENDIAN" elif test $ac_cv_libnet_endianess = lil ; then ..... LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_LIL_ENDIAN" fi This is all well and good until we come check if we are installing on a linux machine: case "$target_os" in *linux*) ..... LIBNET_CONFIG_DEFINES="-D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD" which of course reinitializes the DEFINES macro and we lose all knowledge of our machines "endianess". When libnet-1.1.0 is installed we can check the DEFINES macro: # libnet-config --defines -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H Earlier versions of libnet in the portage tree are ok. Using libnet-1.0.2a-r3: # libnet-1.0-config --defines -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H -DLIBNET_LIL_ENDIAN