For Linux, this requires additional #defines, see https://gist.github.com/panzi/6856583#gistcomment-1656524
Placing those #defines into portable_endian.h would mean we depend on the specific order of #includes (whatever pulls in endian.h first, including other system includes). Avoid this by using symbols provided "globally" via the Makefile. Also nuke the _NETBSD_SOURCE definition in fel.c Signed-off-by: Bernhard Nortmann <bernhard.nortm...@web.de> --- Makefile | 9 ++++++++- fel.c | 6 ------ include/portable_endian.h | 0 phoenix_info.c | 5 ----- pio.c | 5 ----- 5 files changed, 8 insertions(+), 17 deletions(-) mode change 100644 => 100755 include/portable_endian.h diff --git a/Makefile b/Makefile index 8e7f106..d16577b 100644 --- a/Makefile +++ b/Makefile @@ -18,9 +18,16 @@ CC = gcc CFLAGS = -g -O0 -Wall -Wextra -CFLAGS += -std=c99 -D_POSIX_C_SOURCE=200112L +CFLAGS += -std=c99 $(DEFINES) CFLAGS += -Iinclude/ +DEFINES = -D_POSIX_C_SOURCE=200112L +# Define _BSD_SOURCE, necessary to expose all endian conversions properly. +# See http://linux.die.net/man/3/endian +DEFINES += -D_BSD_SOURCE +# glibc 2.20+ also requires _DEFAULT_SOURCE +DEFINES += -D_DEFAULT_SOURCE + # Tools useful on host and target TOOLS = sunxi-fexc sunxi-bootinfo sunxi-fel sunxi-nand-part diff --git a/fel.c b/fel.c index 9b9144d..b240c77 100644 --- a/fel.c +++ b/fel.c @@ -15,12 +15,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* Needs _BSD_SOURCE for htole and letoh */ -/* glibc 2.20+ also requires _DEFAULT_SOURCE */ -#define _DEFAULT_SOURCE -#define _BSD_SOURCE -#define _NETBSD_SOURCE - #include <libusb.h> #include <stdint.h> #include <stdbool.h> diff --git a/include/portable_endian.h b/include/portable_endian.h old mode 100644 new mode 100755 diff --git a/phoenix_info.c b/phoenix_info.c index 0529391..07a217e 100644 --- a/phoenix_info.c +++ b/phoenix_info.c @@ -15,11 +15,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* Needs _BSD_SOURCE for htole and letoh */ -/* glibc 2.20+ also requires _DEFAULT_SOURCE */ -#define _DEFAULT_SOURCE -#define _BSD_SOURCE - #include <stdio.h> #include <stdlib.h> #include <string.h> diff --git a/pio.c b/pio.c index a34c6c5..f545cc4 100644 --- a/pio.c +++ b/pio.c @@ -17,11 +17,6 @@ * MA 02111-1307 USA */ -/* needs _BSD_SOURCE for htole and letoh */ -/* glibc 2.20+ also requires _DEFAULT_SOURCE */ -#define _DEFAULT_SOURCE -#define _BSD_SOURCE - #include <errno.h> #include <stdio.h> #include <stdint.h> -- 2.4.10 -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.