From: Alberto Leiva Popper Date: Thu, 28 Sep 2023 22:49:19 +0000 (-0600) Subject: Feature test macro review X-Git-Tag: 1.6.0~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a818d0ceb1ffdb6393b8d5106c4206bc586face0;p=thirdparty%2FFORT-validator.git Feature test macro review Stop relying on default features; explicitely define the macros that enable the symbols we need. It appears POSIX.1 usage is fairly widespread through the code, and its minimum required version is 2001. We also have one GNU extension: getopt_long(). And we also have one GNU extension marked as nonstandard: timegm(). I'm going to try to remove it in a future commit. --- diff --git a/src/alloc.c b/src/alloc.c index 84c8d834..78e36e7a 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -1,3 +1,5 @@ +#define _XOPEN_SOURCE 500 /* strdup() */ + #include "alloc.h" #include "log.h" diff --git a/src/asn1/asn1c/BIT_STRING.c b/src/asn1/asn1c/BIT_STRING.c index 4e0637cd..ff3a4765 100644 --- a/src/asn1/asn1c/BIT_STRING.c +++ b/src/asn1/asn1c/BIT_STRING.c @@ -3,6 +3,8 @@ * Redistribution and modifications are permitted subject to BSD license. */ +#define _XOPEN_SOURCE 500 /* snprintf() */ + #include #include "asn1/asn1c/asn_internal.h" diff --git a/src/asn1/asn1c/GeneralizedTime.c b/src/asn1/asn1c/GeneralizedTime.c index 1ce990a4..69b7a098 100644 --- a/src/asn1/asn1c/GeneralizedTime.c +++ b/src/asn1/asn1c/GeneralizedTime.c @@ -5,12 +5,11 @@ #define _POSIX_PTHREAD_SEMANTICS /* for Sun */ #define _REENTRANT /* for Sun */ #define __EXTENSIONS__ /* for Sun */ -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for timegm(3) */ -#endif + +#define _DEFAULT_SOURCE 1 /* timegm() */ +#define _XOPEN_SOURCE 600 /* snprintf(), timezone */ +#define _POSIX_C_SOURCE 200112L /* gmtime_r(), localtime_r(), tzset() */ + #include "asn1/asn1c/asn_internal.h" #include "asn1/asn1c/GeneralizedTime.h" diff --git a/src/asn1/asn1c/OBJECT_IDENTIFIER.c b/src/asn1/asn1c/OBJECT_IDENTIFIER.c index 1958ee1e..fc40fa18 100644 --- a/src/asn1/asn1c/OBJECT_IDENTIFIER.c +++ b/src/asn1/asn1c/OBJECT_IDENTIFIER.c @@ -2,6 +2,9 @@ * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. * Redistribution and modifications are permitted subject to BSD license. */ + +#define _XOPEN_SOURCE 500 /* snprintf() */ + #include "asn1/asn1c/asn_internal.h" #include "asn1/asn1c/INTEGER.h" #include "asn1/asn1c/OBJECT_IDENTIFIER.h" diff --git a/src/asn1/asn1c/UTCTime.c b/src/asn1/asn1c/UTCTime.c index 8df18a0a..1c1d8790 100644 --- a/src/asn1/asn1c/UTCTime.c +++ b/src/asn1/asn1c/UTCTime.c @@ -2,6 +2,9 @@ * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. * Redistribution and modifications are permitted subject to BSD license. */ + +#define _XOPEN_SOURCE 500 /* snprintf() */ + #include "asn1/asn1c/asn_internal.h" #include "asn1/asn1c/UTCTime.h" #include "asn1/asn1c/GeneralizedTime.h" diff --git a/src/asn1/asn1c/asn_bit_data.c b/src/asn1/asn1c/asn_bit_data.c index 85602f4f..121f4843 100644 --- a/src/asn1/asn1c/asn_bit_data.c +++ b/src/asn1/asn1c/asn_bit_data.c @@ -4,6 +4,8 @@ * Redistribution and modifications are permitted subject to BSD license. */ +#define _XOPEN_SOURCE 500 /* snprintf() */ + #include #include "asn1/asn1c/asn_system.h" diff --git a/src/asn1/asn1c/asn_internal.c b/src/asn1/asn1c/asn_internal.c index 771ce946..11cd788f 100644 --- a/src/asn1/asn1c/asn_internal.c +++ b/src/asn1/asn1c/asn_internal.c @@ -1,3 +1,5 @@ +#define _XOPEN_SOURCE 500 /* vsnprintf() */ + #include "asn1/asn1c/asn_internal.h" #include diff --git a/src/asn1/asn1c/asn_system.h b/src/asn1/asn1c/asn_system.h index 32c786e0..82b493ab 100644 --- a/src/asn1/asn1c/asn_system.h +++ b/src/asn1/asn1c/asn_system.h @@ -8,14 +8,6 @@ #ifndef ASN_SYSTEM_H #define ASN_SYSTEM_H -#ifndef _DEFAULT_SOURCE -#define _DEFAULT_SOURCE 1 -#endif - -#ifndef _BSD_SOURCE -#define _BSD_SOURCE /* for snprintf() on some linux systems */ -#endif - #include #include #include diff --git a/src/asn1/asn1c/ber_tlv_tag.c b/src/asn1/asn1c/ber_tlv_tag.c index 912ef1c8..ce961c0d 100644 --- a/src/asn1/asn1c/ber_tlv_tag.c +++ b/src/asn1/asn1c/ber_tlv_tag.c @@ -2,6 +2,9 @@ * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. * Redistribution and modifications are permitted subject to BSD license. */ + +#define _XOPEN_SOURCE 500 /* snprintf() */ + #include "asn1/asn1c/asn_internal.h" #include "asn1/asn1c/ber_tlv_tag.h" #include diff --git a/src/asn1/asn1c/constraints.c b/src/asn1/asn1c/constraints.c index 3cfbe94c..b3325aec 100644 --- a/src/asn1/asn1c/constraints.c +++ b/src/asn1/asn1c/constraints.c @@ -1,3 +1,5 @@ +#define _XOPEN_SOURCE 500 /* vsnprintf() */ + #include "asn1/asn1c/asn_internal.h" #include "asn1/asn1c/constraints.h" #include diff --git a/src/cache/local_cache.c b/src/cache/local_cache.c index 59b0ae79..b1683f11 100644 --- a/src/cache/local_cache.c +++ b/src/cache/local_cache.c @@ -1,4 +1,5 @@ -#define _XOPEN_SOURCE 500 +#define _XOPEN_SOURCE 600 /* strptime() */ +#define _POSIX_C_SOURCE 200112L /* localtime_r(), strtok_r() */ #include "cache/local_cache.h" diff --git a/src/config.c b/src/config.c index 531f5500..7598a661 100644 --- a/src/config.c +++ b/src/config.c @@ -1,3 +1,5 @@ +#define _GNU_SOURCE /* getopt_long() */ + #include "config.h" #include diff --git a/src/data_structure/path_builder.c b/src/data_structure/path_builder.c index 0599f032..dbbbc21b 100644 --- a/src/data_structure/path_builder.c +++ b/src/data_structure/path_builder.c @@ -1,3 +1,5 @@ +#define _XOPEN_SOURCE 500 /* snprintf() */ + #include "data_structure/path_builder.h" #include diff --git a/src/file.c b/src/file.c index 816d83b6..42013f98 100644 --- a/src/file.c +++ b/src/file.c @@ -1,4 +1,5 @@ -#define _XOPEN_SOURCE 500 /* nftw() */ +#define _XOPEN_SOURCE 600 /* nftw() */ +#define _POSIX_C_SOURCE 200112L /* fileno() */ #include "file.h" diff --git a/src/json_handler.c b/src/json_handler.c index 19f3cd68..ed801ce4 100644 --- a/src/json_handler.c +++ b/src/json_handler.c @@ -1,3 +1,5 @@ +#define _POSIX_C_SOURCE 200112L /* strtok_r() */ + #include "json_handler.h" #include diff --git a/src/log.c b/src/log.c index b82370c0..c4a45ed0 100644 --- a/src/log.c +++ b/src/log.c @@ -1,3 +1,6 @@ +#define _XOPEN_SOURCE 600 /* vsnprintf() */ +#define _POSIX_C_SOURCE 200112L /* localtime_r() */ + #include "log.h" #ifdef BACKTRACE_ENABLED diff --git a/src/object/manifest.c b/src/object/manifest.c index d4177d38..07cb74eb 100644 --- a/src/object/manifest.c +++ b/src/object/manifest.c @@ -1,3 +1,5 @@ +#define _POSIX_C_SOURCE 200112L /* localtime_r() */ + #include "object/manifest.h" #include "algorithm.h" diff --git a/src/rtr/rtr.c b/src/rtr/rtr.c index c6b1a329..ca196c8d 100644 --- a/src/rtr/rtr.c +++ b/src/rtr/rtr.c @@ -1,3 +1,6 @@ +/* getaddrinfo(), freeaddrinfo(), gai_strerror() */ +#define _POSIX_C_SOURCE 200112L + #include "rtr/rtr.h" #include diff --git a/src/xml/relax_ng.c b/src/xml/relax_ng.c index 00d8a109..09156026 100644 --- a/src/xml/relax_ng.c +++ b/src/xml/relax_ng.c @@ -1,3 +1,5 @@ +#define _XOPEN_SOURCE 500 /* vsnprintf() */ + #include "xml/relax_ng.h" #include diff --git a/test/cache/local_cache_test.c b/test/cache/local_cache_test.c index 84aa132d..d1d926e0 100644 --- a/test/cache/local_cache_test.c +++ b/test/cache/local_cache_test.c @@ -1,5 +1,7 @@ /* This test will create temporal directory "tmp/". Needs permissions. */ +#define _XOPEN_SOURCE 500 /* snprintf() */ + #include "cache/local_cache.c" #include