1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

headers: require GCC 2.7 or newer in order to allow attribute GCC'isms usage

Usage in other code paths already protected and requiring even newer versions.
This commit is contained in:
Yang Tse 2012-04-14 15:12:30 +02:00
parent 8b63b48627
commit 48d13b44c6
2 changed files with 16 additions and 9 deletions

View File

@ -605,13 +605,17 @@ int netware_init(void);
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#endif #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 * Provide a mechanism to silence picky compilers, such as gcc 4.6+.
have multiple implementations of the same interface it may happen. */ * Parameters should of course normally not be unused, but for example when
#ifndef __GNUC__ * we have multiple implementations of the same interface it may happen.
#define UNUSED_PARAM /*NOTHING*/ */
#else
#if defined(__GNUC__) && ((__GNUC__ >= 3) || \
((__GNUC__ == 2) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 7)))
# define UNUSED_PARAM __attribute__((__unused__)) # define UNUSED_PARAM __attribute__((__unused__))
#else
# define UNUSED_PARAM /*NOTHING*/
#endif #endif
/* /*

View File

@ -28,8 +28,11 @@
#define SEGSIZE 512 /* data segment size */ #define SEGSIZE 512 /* data segment size */
#ifndef __GNUC__ #if defined(__GNUC__) && ((__GNUC__ >= 3) || \
#define __attribute__(x) ((__GNUC__ == 2) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 7)))
# define PACKED_STRUCT __attribute__((__packed__))
#else
# define PACKED_STRUCT /*NOTHING*/
#endif #endif
/* Using a packed struct as binary in a program is begging for problems, but /* 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 */ short th_opcode; /* packet type */
unsigned short th_block; /* all sorts of things */ unsigned short th_block; /* all sorts of things */
char th_data[1]; /* data or error string */ char th_data[1]; /* data or error string */
} __attribute__ ((__packed__)); } PACKED_STRUCT;
#define th_stuff th_block #define th_stuff th_block
#define th_code th_block #define th_code th_block