]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix GCC version detection for __attribute__((deprecated)) (#2472)
authorSam James <sam@gentoo.org>
Wed, 1 Jan 2025 18:56:51 +0000 (18:56 +0000)
committerMartin Matuska <martin@matuska.de>
Tue, 11 Mar 2025 09:31:40 +0000 (10:31 +0100)
The #if condition as-written fails for any major >= 3 if minor < 1, e.g.
GCC 15.0 (while in development).

Use the idiom described in the GCC docs [0] to avoid this.

[0] https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html

Fixes: ab94a813b0f64cbc1bcb952bf55424a2d9c7f1d9
(cherry picked from commit a186d9662b4e3bc2e0f39d3248f9c1244c4346cb)

libarchive/archive_entry.h

index 97f5cdafbf90b4b85f05327b5dca49fafe72329e..22c4be24a5d57c86ba7adcb9c682782ce20d88ea 100644 (file)
@@ -127,7 +127,8 @@ typedef ssize_t la_ssize_t;
 # define __LA_DECL
 #endif
 
-#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1
+#if defined(__GNUC__) && (__GNUC__ > 3 || \
+    (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
 # define __LA_DEPRECATED __attribute__((deprecated))
 #else
 # define __LA_DEPRECATED