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.

Reply via email to