]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
headers: require GCC 2.7 or newer in order to allow attribute GCC'isms usage
authorYang Tse <yangsita@gmail.com>
Sat, 14 Apr 2012 13:12:30 +0000 (15:12 +0200)
committerYang Tse <yangsita@gmail.com>
Sat, 14 Apr 2012 13:12:30 +0000 (15:12 +0200)
Usage in other code paths already protected and requiring even newer versions.

lib/setup.h
tests/server/tftp.h

index 4bce5a93fff8f74d0d6afaa3c7c9c7c1c32c37ce..732b1a3b41b9527f8a5f0e654f08de61b49609f5 100644 (file)
@@ -605,13 +605,17 @@ int netware_init(void);
 #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
 #endif
 
-/* Provide a mechanism to silence picky compilers, such as gcc 4.6+.
-   Parameters should of course normally not be unused, but for example when we
-   have multiple implementations of the same interface it may happen. */
-#ifndef __GNUC__
-#define UNUSED_PARAM /*NOTHING*/
+/*
+ * Provide a mechanism to silence picky compilers, such as gcc 4.6+.
+ * Parameters should of course normally not be unused, but for example when
+ * we have multiple implementations of the same interface it may happen.
+ */
+
+#if defined(__GNUC__) && ((__GNUC__ >= 3) || \
+  ((__GNUC__ == 2) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 7)))
+#  define UNUSED_PARAM __attribute__((__unused__))
 #else
-#define UNUSED_PARAM __attribute__((__unused__))
+#  define UNUSED_PARAM /*NOTHING*/
 #endif
 
 /*
index 461ab9a36b19599b32f6d9658cd1dd7fca12b6be..0650efe6aeb23b10a1aeb08b42a0468f2b61cf4f 100644 (file)
 
 #define SEGSIZE 512 /* data segment size */
 
-#ifndef __GNUC__
-#define __attribute__(x)
+#if defined(__GNUC__) && ((__GNUC__ >= 3) || \
+  ((__GNUC__ == 2) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 7)))
+#  define PACKED_STRUCT __attribute__((__packed__))
+#else
+#  define PACKED_STRUCT /*NOTHING*/
 #endif
 
 /* Using a packed struct as binary in a program is begging for problems, but
@@ -40,7 +43,7 @@ struct tftphdr {
   short th_opcode;         /* packet type */
   unsigned short th_block; /* all sorts of things */
   char th_data[1];         /* data or error string */
-} __attribute__ ((__packed__));
+} PACKED_STRUCT;
 
 #define th_stuff th_block
 #define th_code  th_block