ssp: rework the logic to use priority=200 on clang builds

The preproc logic was added at the last minute to appease GCC 4.2, and
kevans@ did clearly not go back and double-check that the logic worked out
for clang builds to use the new variant.

It turns out that clang defines __GNUC__ == 4. Flip it around and check
__clang__ as well, leaving a note to remove it later.

Reported by:	cem
This commit is contained in:
Kyle Evans 2019-11-13 03:00:32 +00:00
parent cf33fa7e80
commit 5ba134a464

View file

@ -47,13 +47,15 @@ __FBSDID("$FreeBSD$");
* they're either not usually statically linked or they simply don't do things
* in constructors that would be adversely affected by their positioning with
* respect to this initialization.
*
* This conditional should be removed when GCC 4.2 is removed.
*/
#if defined(__GNUC__) && __GNUC__ <= 4
#define _GUARD_SETUP_CTOR_ATTR \
__attribute__((__constructor__, __used__));
#else
#if defined(__clang__) || (defined(__GNUC__) && __GNUC__ > 4)
#define _GUARD_SETUP_CTOR_ATTR \
__attribute__((__constructor__ (200), __used__));
#else
#define _GUARD_SETUP_CTOR_ATTR \
__attribute__((__constructor__, __used__));
#endif
extern int __sysctl(const int *name, u_int namelen, void *oldp,