summaryrefslogtreecommitdiff
path: root/include/sys/cdefs.h
AgeCommit message (Collapse)Author
2024-07-09Clang support for gnu_inline attributeWaldemar Brodkorb
Clang also supports the gnu_inline attribute and the __GNUC_STDC_INLINE__ macro (C99 semantics). However, it reports as GCC 4.2 compatible (__GNUC_MINOR__ / __GNUC__) and thus the current defines do not think it can support this. Add clang as an alternative for this support. Documentation shows that this attribute is supported since at least Clang 8. Signed-off-by: Marcus Haehnel <marcus.haehnel@kernkonzept.com>
2024-07-09c++: Remove deprecated dynamic exception specificationSven Linker
Dynamic exception specification using `throw()` is deprecated since C++11 and removed in C++17. This change replaces `throw()` with `noexcept` when compiling for newer standards. Co-authored-by: Sven Linker <sven.linker@kernkonzept.com> Signed-off-by: Marcus Haehnel <marcus.haehnel@kernkonzept.com>
2021-08-25Fix warnings due to missing attributes for __EI_ prefixed symbolsYann Sionneau
With new compiler (gcc >= 9 ?) building uClibc-ng now gives this sort of warnings: ./include/libc-symbols.h:426:25: warning: '__EI_localeconv' specifies less restrictive attribute than its target 'localeconv': 'nothrow' [-Wmissing-attributes] 426 | extern __typeof (name) __EI_##name __attribute__((alias (__hidden_asmname1 (,#local)))) | ^~~~~ ./include/libc-symbols.h:429:29: note: in expansion of macro '__hidden_ver1' 429 | # define hidden_def(name) __hidden_ver1(__GI_##name, name, name); | ^~~~~~~~~~~~~ ./include/libc-symbols.h:497:32: note: in expansion of macro 'hidden_def' 497 | # define libc_hidden_def(name) hidden_def (name) | ^~~~~~~~~~ libc/misc/locale/locale.c:306:1: note: in expansion of macro 'libc_hidden_def' 306 | libc_hidden_def(localeconv) | ^~~~~~~~~~~~~~~ In file included from libc/misc/locale/localeconv.c:8: libc/misc/locale/locale.c:261:15: note: '__EI_localeconv' target declared here 261 | struct lconv *localeconv(void) | ^~~~~~~~~~ The fix is mostly being backported/adapted from glibc.
2017-11-19remove unused FORTIFY code fragmentsWaldemar Brodkorb
2016-12-20sys/cdefs.h: add definition of __attribute_alloc_size__Thomas Petazzoni
Commit cee0b058fa0b4501b289a2da365182d60314d746 ("add aligned_alloc required for latest gcc libstdc++") added the prototype of aligned_alloc() to <stdlib.h>. This prototype contains '__attribute_alloc_size__ ((2))', but this is not defined anywhere in uClibc-ng. This commit addresses that by adding the relevant definition in <sys/cdefs.h>, borrowed from glibc. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-09Define __attribute_const__Waldemar Brodkorb
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com> Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
2015-03-13unistd.h: put getppid under XOPEN2K8Bernhard Reutner-Fischer
Add __LEAF to all __THROW, introduce non-leaf __THROWNL Adjust affected spots accordingly. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-11-18drop support for pre ISO-C compilersMike Frysinger
This drops __signed, __volatile, and __const. Only the latter was used in the code base, and for uClibc, not consistently. Much of the code used plain "const" which meant "__const" was useless. Really, the point of this is to stay in sync with what glibc did. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-11-18Replace FSF snail mail address with URLsMike Frysinger
This matches a similar change made to glibc. No functional changes here. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-12-13Remove the rest of "bounded pointers" scaffolding. gcc website says"Denis Vlasenko
"Bounds Checking Projects... This project has been abandoned" for four years at least.
2008-01-06use the __extern_always_inline define from cdefs.h instead of duplicating ↵Mike Frysinger
gcc version checking in every pt-machine.h header ... while __extern_always_inline should work fine, i think what is intended is __extern_inline ... should double check later
2008-01-05sync with glibc to get the extern inline directiveMike Frysinger
2007-01-29Richard Sandiford writes:Mike Frysinger
However, retesting on m68k showed up a problem that had appeared in uClibc since the last time I tried. Specifically, revision 15785 did: -#define HEAP_GRANULARITY (sizeof (HEAP_GRANULARITY_TYPE)) +#define HEAP_GRANULARITY (__alignof__ (HEAP_GRANULARITY_TYPE)) -#define MALLOC_ALIGNMENT (sizeof (double)) +#define MALLOC_ALIGNMENT (__alignof__ (double)) The problem is that (a) MALLOC_HEADER_SIZE == MALLOC_ALIGNMENT (b) the header contains a size value of type size_t (c) sizeof (size_t) is 4 on m68k, but... (d) __alignof__ (double) is only 2 (the largest alignment used on m68k) So we only allocate 2 bytes for the 4-byte header, and the least significant 2 bytes of the size are in the user's area rather than the header. The patch below fixes that problem by redefining MALLOC_HEADER_SIZE to: MAX (MALLOC_ALIGNMENT, sizeof (size_t)) (but without the help of the MAX macro ;)). However, we really would like to have word alignment on Coldfire. It makes a big performance difference, and because we have to allocate a 4-byte header anyway, what wastage there is will be confined to the end of the allocated block. Any wastage will also be limited to 2 bytes per allocation compared to the current alignment. I've therefore used the __aligned__ type attribute to create a double type that has at least sizeof (size_t) bytes of alignment. I've introduced a new __attribute_aligned__ macro for this. It might seem silly protecting against old or non-GNU compilers here, but the extra alignment is only an optimisation, and having the macro is more in the spirit of the other attribute code.
2006-01-20disable deprecated warnings for some filesMike Frysinger
2005-11-18Enable __THROW,_NTH,REDIRECT_NTHPeter S. Mazinger
2005-07-02sync with glibc versionsMike Frysinger
2003-09-26Revert to using uClibc-specific c-symbol-prefix stuffMiles Bader
(__C_SYMBOL_PREFIX__).
2003-08-01Add a new *scanf implementation, includeing the *wscanf functions.Manuel Novoa III
Should be standards compliant and with several optional features, including support for hexadecimal float notation, locale awareness, glibc-like locale-specific digit grouping with the `'' flag, and positional arg support. I tested it pretty well (finding several bugs in glibc's scanf in the process), but it is brand new so be aware. The *wprintf functions now support floating point output. Also, a couple of bugs were squashed. Finally, %a/%A conversions are now implemented. Implement the glibc xlocale interface for thread-specific locale support. Also add the various *_l(args, locale_t loc_arg) funcs. NOTE!!! setlocale() is NOT threadsafe! NOTE!!! The strto{floating point} conversion functions are now locale aware. The also now support hexadecimal floating point notation. Add the wcsto{floating point} conversion functions. Fix a bug in mktime() related to dst. Note that unlike glibc's mktime, uClibc's version always normalizes the struct tm before attempting to determine the correct dst setting if tm_isdst == -1 on entry. Add a stub version of the libintl functions. (untested) Fixed a known memory leak in setlocale() related to the collation data. Add lots of new config options (which Erik agreed to sort out :-), including finally exposing some of the stripped down stdio configs. Be careful with those though, as they haven't been tested in a long time. (temporary) GOTCHAs... The ctype functions are currently incorrect for 8-bit locales. They will be fixed shortly. The ctype functions are now table-based, resulting in larger staticly linked binaries. I'll be adding an option to use the old approach in the stub locale configuration.
2002-10-31Ok, this commit is _huge_ and its gonna change the world. I'veEric Andersen
been working on a new config system on and off for about 6 months now, but I've never been fully satisfied. Well, I'm finally am happy with the new config system, so here it is. This completely removes the old uClibc configuration system, and replaces it with an entirely new system based on LinuxKernelConf, from http://www.xs4all.nl/~zippel/lc/ As it turns out, Linus has just merged LinuxKernelConf into Linux 2.5.45, so it looks like I made the right choice. I have thus far updated only x86. I'll be updating the other architectures shortly. -Erik
2002-07-24(__ASMNAME): Use C_SYMBOL_PREFIX.Miles Bader
(__ASMNAME2): Macro removed.
2001-09-27Rev all the header files to sync things with glibc 2.2.4Eric Andersen
2001-07-11The main part of the C++ support is the definition of __BEGIN_DECLSDavid McCullough
and __END_DECLS in this file based on the __cplusplus define.
2001-05-26Added definition of __THROWDavid Schleef
2000-05-14Patch from "D. Jeff Dionne / VE3DJF" <jeff@rt-control.com>Erik Andersen
to allow uC-libc to compile under x86. -Erik
2000-05-14Initial revisionErik Andersen