Commit Graph

72 Commits

Author SHA1 Message Date
Gregory Nutt
67ec3d7926 Remove CONFIG_CAN_PASS_STRUCT
This commit resolves issue #620:

Remove CONFIG_CAN_PASS_STRUCTS #620

The configuration option CONFIG_CAN_PASS_STRUCTS was added many years ago to support an old version of the SDCC compiler. That compiler is currently used only with the Z80 and Z180 targets. The limitation of that old compiler was that it could not pass structures or unions as either inputs or outputs. For example:

    #ifdef CONFIG_CAN_PASS_STRUCTS
    struct mallinfo mallinfo(void);
    #else
    int      mallinfo(FAR struct mallinfo *info);
    #endif

And even leads to violation of a few POSIX interfaces like:

    #ifdef CONFIG_CAN_PASS_STRUCTS
    int  sigqueue(int pid, int signo, union sigval value);
    #else
    int  sigqueue(int pid, int signo, FAR void *sival_ptr);
    #endif

This breaks the 1st INVIOLABLES rule:

Strict POSIX compliance
-----------------------

  o Strict conformance to the portable standard OS interface as defined at
    OpenGroup.org.
  o A deeply embedded system requires some special support.  Special
    support must be minimized.
  o The portable interface must never be compromised only for the sake of
    expediency.
  o Expediency or even improved performance are not justifications for
   violation of the strict POSIX interface

Also, it appears that the current SDCC compilers have resolve this issue and so, perhaps, this is no longer a problem: z88dk/z88dk#1132

NOTE:  This commit cannot pass the PR checks because it depends on matching changes to the apps/ directory.
2020-04-11 21:19:47 +01:00
Xiang Xiao
cde88cabcc Run codespell -w with the latest dictonary again
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-23 22:27:46 +01:00
Gregory Nutt
ace25a78d9 include/cxx/ctime: Remove gititimer and setitimer. These are prototyped in sys/time.h, not time.h. Alternatively, ctime could include sys/time.h. Those APIs should also be in the std namespace. 2019-11-13 14:01:25 -06:00
liuhaitao
9b75ef06ea include/sys/time.h, libs/libc/unistd, sched/timer: Implement alarm(), setitimer() and getitimer() APIs. 2019-11-13 08:10:16 -06:00
athan Hartman
6d7e0feea1 Remove 'executable' bit on several files 2019-08-01 14:13:55 -06:00
junmin-kim
9e78931b91 include/cxx/cstddef: Add C11++ std::nullptr_t 2019-07-11 06:07:34 -06:00
Gregory Nutt
eef5e777c9 include/cxx/cstdlib: Add std::random() 2019-04-21 15:11:24 -06:00
Gregory Nutt
ccabac3eb6 More fixes for compilation with current SDCC compiler 2017-09-30 15:28:04 -06:00
David Sidrane
d0023038a5 cwchar:Use CONFIG_LIBC_WCHAR to only export the wc/mb functions
When a build does not want to use wide or multibyte char
   CONFIG_LIBC_WCHAR is not set. Therefore we should to only
   export the wc/mb functions when defined.

   Regardless of the stat of CONFIG_LIBC_WCHAR the non mb/wc
   definitions such as mbstate_t, wint_t, wctype_t need to be
   exported.
2017-08-10 14:22:51 -10:00
Alan Carvalho de Assiss
680368b656 libm: Port gamma() and lgamma() from FreeBSD to NuttX. 2017-08-08 07:02:39 -06:00
Gregory Nutt
14ae6df182 locale.h: Add a bogus definition of locale_t 2017-05-12 10:13:18 -06:00
Alan Carvalho de Assis
dbc074edab Include wcstold in C++ cwchar header file 2017-03-27 09:49:44 -06:00
Alan Carvalho de Assis
d43380d543 Add wcstoull function 2017-03-08 13:28:50 -06:00
Alan Carvalho de Assis
2d1ace3ee5 Add wcstof function 2017-03-08 12:47:23 -06:00
Alan Carvalho de Assis
3ccef07863 C library: Add wcstoll function 2017-03-08 12:26:35 -06:00
Alan Carvalho de Assis
fda095ccda Add mbtowc and wctomb to C++ std namespace 2017-03-08 12:16:56 -06:00
Gregory Nutt
05a288f2e1 C library: Add strerror_r 2017-03-08 12:14:07 -06:00
Gregory Nutt
cb7c5f9921 Implement strings.h macros as inline functions when possible for better C++ compatibility. 2017-02-22 10:20:58 -06:00
Gregory Nutt
22a8c2178d cstring: undefine macros defined in new strings.h. 2017-02-22 06:59:39 -06:00
Gregory Nutt
acf020c649 Add setbuf and setvbuf to cstdio. 2017-02-17 10:06:30 -06:00
Gregory Nutt
7a4d498b42 wctype.h needs extern C 2017-02-17 09:48:55 -06:00
Gregory Nutt
673b2ed2bf Update cwchar. Add cwctype. 2017-02-17 09:45:54 -06:00
Gregory Nutt
4f5879f998 C library: Add ffs(). Add strings.h. Move strcasecmp, strncasecmp, bzero, bcmp, and bcopy to where they belong in strings.h.h, not string.h. bzero, bcmp, and bcopy are legacy functions; the contemporary counterparts should be used instead. 2017-02-16 16:10:09 -06:00
Gregory Nutt
a49b349614 C library: Add swab() 2017-02-16 14:42:27 -06:00
Gregory Nutt
fed9d5a0f8 cunistd: Fix stray single back quote the crept in in last commit. 2017-02-16 11:22:02 -06:00
Gregory Nutt
6bcace62a8 Update some C++ header files 2017-02-14 07:48:54 -06:00
Gregory Nutt
de30c2e5dd Back out the rest of commit 1e754402b8. Newlib support will not be accepted into the NuttX repository. 2016-11-03 09:41:38 -06:00
Alan Carvalho de Assis
1e754402b8 Add C++ support linking with GNU toolchain newlib/stdlibc++ 2016-11-03 08:50:58 -06:00
Gregory Nutt
c08cb7ddea Implement ctype.h functions as inline if possible. cctype can then properly select namespace. 2016-10-22 08:18:00 -06:00
David Sidrane
b1ed7910f0 Allows c++ code to compile with or without CONFIG_LIBC_LOCALE
and will generate a link error if CONFIG_LIBC_LOCALE is not defined
and setlocale is referneced. With CONFIG_LIBC_LOCALE defined
setlocale will act as if MB string is not supported and return
"C" for POSIX. C and ""
2016-10-19 06:49:19 -10:00
Alan Carvalho de Assis
53700fc71f Add isblank() macro to ctype.h 2016-10-19 07:22:13 -06:00
Gregory Nutt
c73d3e9c5f Remove comments that no longer apply. clocale should not do anyting if CONFIG_LIBC_LOCALE is not defined. 2016-10-19 07:06:43 -06:00
Gregory Nutt
626408bc29 C Library: Add clocale header file 2016-10-18 07:52:22 -06:00
Gregory Nutt
440d535360 include/cxx: Update some C++ header files due to recent changes to C hader files 2016-08-25 15:06:46 -06:00
Gregory Nutt
f1cf6731eb Add raise to std:: namespace in csignal 2016-07-04 12:22:33 -06:00
Gregory Nutt
e879d0f423 Move scheduler instrumentation hooks out of sched.h (where they seem like application interfaces) and into nuttx/sched.h where it is clare that these are OS internal interfaces. 2016-03-16 11:00:31 -06:00
Sebastien Lorquet
77e4e7b231 Change all references from avsprintf to vasprintf. From Sebastien Lorquet 2015-09-07 13:22:13 -06:00
Paul A. Patience
3b89eabd50 Correct #if to #ifdef when the macro can be undefined. Fix bug in AT24XX driver: it should compare AT24XX_ADDRSIZE to 2. 2015-09-01 13:52:29 -04:00
Gregory Nutt
8f7453b5ec Addings to stdlib.h must be added to cstdlib too 2015-08-14 12:04:57 -06:00
Gregory Nutt
4adda9d428 Fix numerous typos in configuration variable names. Tracked down by Alan Carvalho de Assis 2015-05-23 17:08:35 -06:00
Gregory Nutt
ca29c652c3 Remove duplicate prototype of statfs from stdio.h. Belongs in sys/statfs.h only. Note by Michael Hope 2015-05-12 07:00:11 -06:00
Gregory Nutt
b478c11b85 Back out definition of mbstate_t. That is a mistake 2015-02-19 09:56:53 -06:00
Gregory Nutt
8bd9203d49 Add mbstate_t to wchar.h and cwchar 2015-02-19 09:21:35 -06:00
Gregory Nutt
5b1514cc9b Add an empty cwchar file 2015-02-19 06:32:10 -06:00
Gregory Nutt
2732da28a3 C++: Remove 'using ::timeval' from ctime. struct timeval was recently move to sys/time.h where it belongs. Now there are problems when it is referenced in ctime. Fixed by just removing it from ctime. Is that correct? or should ctime include sys/time.h? Noted by David Sidrane 2015-02-18 20:51:11 -06:00
Gregory Nutt
e9cec9057b There were some changes which broke my NuttX-Build. With these two patches it builds again. From Manuel Stühn 2015-01-01 15:56:25 -06:00
Gregory Nutt
bd93ba55c5 Cosmetic change to comment 2014-11-28 09:06:05 -06:00
Gregory Nutt
5ddfdb2d8d cctype: Undefined macros defined ctype.h so that builtin C++ implementations will be used 2014-11-28 09:02:52 -06:00
Gregory Nutt
fecad1027c Update csdtio too 2014-11-06 07:11:23 -06:00
Gregory Nutt
ee22104762 Can't use formal parameter name 'template' in stdlib.h. Causes C++ compilation errors. Noted by Lorenz Meier 2014-11-06 07:00:23 -06:00