Gregory Nutt
e5ea84c1ff
libs/libc/stdio: A few more coding standard fixes for nano-printf file: all global data names must begin with g_. All structure names must end with _s.
2019-02-06 17:05:01 -06:00
Keith Packard
e05149b745
libs/libc/stdio: Add newlib-nano fprintf as an option. This fprintf code was originally adapted from AVR libc and provides improved floating point output support, including 'g' mode and making 'f' mode include digits past the decimal by default. However, this version does not have any long long support. On a demonstration cortex M4 build, this version saves about 5kB of ROM. The newlib version can be found here: https://salsa.debian.org/electronics-team/toolchains/newlib-nano . That project is GPL overall, but the newlib-nano printf portions are BSD licensed as described in the COPYING.NEWLIB file.
2019-02-06 15:50:52 -06:00
Xiang Xiao
659852acd5
libs/libc/unistd/lib_getopt.c: Add logic to reinitialize the stale context for the FLAT/PROTECTED builds. In these builds getopt() global varriables may be shared by many tasks. If any task exits the getopt() loop before all command line arguments have been parsed, then getopt() global variables will be left in a bad state. The next time getopt() is called, this logic should detect the bad state and force the state of getopt() to be re-initialized so that it can be reused. This logic is not full proof (it would fail, for example, if you tried to parse the same command line twice) but should catch the typical misuse cases.
2019-02-05 10:30:59 -06:00
Xiang Xiao
964f0ab304
aio_cancel need signal caller after the succeed and fix minor issue in the error handler
2019-01-27 09:39:33 -06:00
Xiang Xiao
fb63c0a293
sched/signal and related changes to other OS subsystems.
2019-01-27 09:28:59 -06:00
Xiang Xiao
dc8013ab76
Remove the unused libs/libc/endian/Kconfig
2019-01-27 06:58:01 -06:00
Xiang Xiao
16850297f3
libs/unistd and other affected files: Hostname support no longer depends on CONFIG_NET since the host name is also useful in the non-network environment. CONFIG_NET_HOSTNAME changed to CONFIG_LIB_HOSTNAME.
2019-01-27 06:56:16 -06:00
Gregory Nutt
c40daffb5b
libs/libc/misc/lib_utsname.c: Add build date and time to uname output (like Linux).
2019-01-27 06:24:24 -06:00
ligd
d6740a6678
libs/libc/stdio/lib_libvsprintf.c: Correct justification for alternate forms of %p and %P
2019-01-27 06:22:01 -06:00
Alan Carvalho de Assis
db0b9b7c34
arch/arm/src/samd2l2 serial: Fix SAMD2L2 serial driver it needs sam_usart_enable() to work
2019-01-26 12:51:51 -06:00
Xiang Xiao
8763e51583
libs/libc/symtab/symtab_findorderedbyvalue.c: Remove unused symtab_findorderedbyvalue.
2019-01-26 12:42:30 -06:00
Xiang Xiao
8812a3315d
libs/libc/machine/arm: Fix the minor issue in libc arm machine folder; MOVW/MOVT should use zero(not sign) extension.
2019-01-26 11:59:27 -06:00
anchao
98add65c14
libs/libc/machine/arm/armv7-m/arch_elf.c: Add support for the R_ARM_THM_JUMP11 relocation type. This relocation type may be generated when LTO optimization is enabled.
2019-01-26 11:52:57 -06:00
Xiang Xiao
c43e4673ab
sched/Kconfig, libs/libc/dllfcn/Kconfig, libs/libc/modlib/Kconfig: Refine ELF related configurations.
2019-01-26 11:50:09 -06:00
anchao
88efb84847
libs/libc/dllfcn, sched/init: Add LD_LIBRARY_PATH environment variable support.
2019-01-26 11:47:14 -06:00
Xiang Xiao
9e2238f6cd
libs/libc/dllfcn: Implement dlerror using strerror.
2019-01-26 11:39:05 -06:00
Xiang Xiao
0edcd6b85e
binfmt/libelf, libs/libc/modlib: Optimize elf load speed: (1) Don't zero out memory, (2) Reduce the initial buffer size to 32 bytes.
2019-01-26 11:34:40 -06:00
Xiang Xiao
38ffb98f1b
Kconfig files, binfmt/libelf, libs/libc/machin, libs/libxx: Correct libcxx exception handling by introducing the generic config(CXX_EXCEPTION and CXX_LIBSUPCXX)
2019-01-26 11:23:31 -06:00
Xiang Xiao
095e28d45e
binfmt/, binfmt/libelf/, include/nuttx, libs/libc/machine, libs/libc/modlib, and others: Move elf related arch function to include/nuttx/elf.h because the implementation is located in libs/libc/machine and in order to avoid the conflict with the 3rd party libraries and clean up the file inclusion: (1) Remove redundant elf32.h, (2) Remove nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove nuttx/binfmt/elf.h in modlib, and (4) Rmove nuttx/module.h in modlib.
2019-01-26 11:18:45 -06:00
Gregory Nutt
3def509f4e
libs/libc/stdio/lib_libfread.c: fread() should always set EOF if fewer than the requested number of bytes was not read. Per Anthony Merlino.
2018-12-07 12:18:40 -06:00
David Sidrane
5433ec589b
fs/driver/fs_blockpartition.c: Fix void pointer warning.
...
libs/libc/unistd/lib_daemon.c: Fix compiler error is streams disabled.
sched/irq/irq_procfs.c: Fix warning
sched/task/task_vfork.c: Fix void * math warning
2018-12-03 17:54:21 -06:00
Juha Niskanen
3e7281e699
libs/libc/netdb: Support multiple IP addresses per hostname
2018-11-23 07:09:47 -06:00
uha Niskanen
23aa2839c3
libs/libc/netdb/lib_dnsquery.c: harden against DNS spoofing. This commit implements most of the RFC 5452 guidelines for making DNS more resilient. We now verify response matches against what was queried and use unpredictable query IDs. It is also checked that response come from correct DNS server. Also fixes a buffer overflow when querying hostnames longer than CONFIG_NETDB_DNSCLIENT_NAMESIZE.
2018-11-16 06:56:45 -06:00
Juha Niskanen
5129e4dd60
ibs/libc/netdb: Make DNS retries configurable
2018-11-14 06:30:49 -06:00
Petteri Aimonen
fe0532c226
Merged in paimonen/nuttx/pullreq_libc_libnx_updates (pull request #757 )
...
Pullreq libc libnx updates
* NuttX: make strerror() return 'Success' for 0
* NuttX: fix strrchr() so that it considers null terminator as part of string
From strrchr(3) man page:
"The terminating null byte is considered part of the string, so that if c
is specified as '\0', these functions return a pointer to the terminator."
* NuttX: mm_free(): Add DEBUGASSERT()'s to catch memory corruption early.
It's easier to find the source when asserts fail already when freeing
an overflowed buffer, than if the corruption is only detected on next
malloc().
* MM_FILL_ALLOCATIONS: Add debug option to fill all mallocs()
This is helpful for detecting uninitialized variables,
especially in C++ code. I seem to be forgetting to initialize
member variables and then they just get random values..
* NuttX: nxtk_bitmapwindow: Fix warning message when bitmap is fully off-screen.
* nxfonts_getfont: Avoid unnecessary warnings for other whitespace chars also.
* NuttX: Fix kerning of 'I' in Sans17x22 font
The I character was running together with some other
characters, e.g. in sequence "IMI".
* NXMU: Revalidate window pointer for mouse events.
NXMU caches the previous window pointer so that further mouse
events can be sent to the same window. However, if the window
is destroyed while mouse button is held down, the pointer may
become invalid and cause a crash. This patch revalidates the
pointer before using it.
Approved-by: GregoryN <gnutt@nuttx.org>
2018-11-12 15:36:35 +00:00
ligd
4a8b750ecd
ibs/libc/net: Add basic implementation for recvmsg and sendmsg per OpenGroup.org specification.
2018-11-09 11:39:05 -06:00
Xiang Xiao
cb095ea3d3
libs/libc/misc/lib_envpath.c: Fix typo error
2018-11-09 09:35:25 -06:00
Xiang Xiao
18f971aa35
libs/libc/aio/lio_listio.c: Fix a typograpical error.
2018-11-08 19:09:47 -06:00
Xiang Xiao
e27b6c46ec
libs/libc/stdio/lib_libvsprintf.c: Eliminate recursive in conversion functions of lib_vsprintf().
2018-11-08 08:43:15 -06:00
Xiang Xiao
5ab668ffae
libs/libc/string/lib_memrchr.c: Add memrchr() function
2018-11-08 08:37:34 -06:00
ligd
ec00670eb7
libs/libc/netdb/lib_dnsbind.c: Make DNS recevie timeout configurable.
2018-11-08 08:33:13 -06:00
Xiang Xiao
a9ff43d93c
fs/aio, libs/libc/aio, sched/mqueue, sched/timer, and sched/signal: Remove the code duplication for SIGEV_THREAD.
2018-11-08 08:19:17 -06:00
nchao
6509a0c0ca
binfmt/ and libs/libc: Make exepath_*() more common:
...
1. Move exepath_*() related code to libc/misc
1. Rename exepath_ to envpath_
2. Rename BINFMT_EXEPATH to LIB_ENVPATH
libs/libc/modlib: Add pre module library symbol table support
2018-11-08 07:27:14 -06:00
Alan Carvalho de Assis
ea1689409f
libs/libc/misc/lib_crc8ccitt.c: Adds implementation of CRC8-CCITT.
2018-10-27 16:29:32 -06:00
Lokesh B V
56b4bc8bcb
libs/libc: Correct some errors in psignal() and stpncpy().
2018-10-24 17:15:51 -06:00
Gregory Nutt
efe2ff3933
libs/libc/stdio/Kconfig: Commit d0254b1c79
removed all usage of CONFIG_NOPRINTF_FIELDWIDTH but failed to remove the selection from the Kconfig file.
2018-10-06 10:33:29 -06:00
Gregory Nutt
0487fa90f8
libs/libc/stdio/lib_libvsprintf.c: Correct another discrepancy between NuttX printf() output and glibc printf() output.
2018-10-06 09:57:06 -06:00
Gregory Nutt
079fedaa3d
Update TODO list. Costmetic (only) changes to libs/libc/stdio/lib_libvsprintf.c
2018-10-05 16:09:53 -06:00
Gregory Nutt
055810d9a4
libs/libc/stdio/lib_libvsprintf.c: Correct handling of integer 'precision' in all justification types for values 9, 99, 999, 9999, 99999:
...
Right justification:
009 099 999 9999 99999 %5.3u
9 99 999 9999 99999 %5u
Right justification, zero padding
009 099 999 9999 99999 %05.3u
00009 00099 00999 09999 99999 %05u
Left justification
009 099 999 9999 99999 %-5.3u
9 99 999 9999 99999 %-5u
2018-10-05 13:54:36 -06:00
Gregory Nutt
c958dc0f22
libs/libc/stdio/lib_libvsprintf.c: Back out most of commit d0254b1c79
. While logic seemed correct, verify against glibc showed differs. The output now matches the output form glibc:
...
This code sequence:
printf("%3.3u %3.3u %3.3u %3.3u %3.3u\n",
9, 99, 999, 9999, 99999);
printf("%3u %3u %3u %3u %3u\n",
9, 99, 999, 9999, 99999);
printf("%3.3lu %3.3lu %3.3lu %3.3lu %3.3lu\n",
9L, 99L, 999L, 9999L, 99999L);
printf("%3u %3u %3u %3u %3u\n",
9L, 99L, 999L, 9999L, 99999L);
printf("%3.3llu %3.3llu %3.3llu %3.3llu %3.3llu\n",
9LL, 99LL, 999LL, 9999LL, 99999LL);
printf("%3llu %3llu %3llu %3llu %3llu\n",
9LL, 99LL, 999LL, 9999LL, 99999LL);
Generates:
009 099 999 9999 99999
9 99 999 9999 99999
009 099 999 9999 99999
9 99 999 9999 99999
009 099 999 9999 99999
9 99 999 9999 99999
For both NuttX and glibc.
2018-10-05 13:00:18 -06:00
Gregory Nutt
d0254b1c79
Squashed commit of the following:
...
libs/libc/stdio/lib_libvsprintf.c: Resolves the integer field width problem if Issue 35 for the cases of long and long long integer types.
libs/libc/stdio/lib_libvsprintf.c: Resolves the integer field width problem if Issue 35 for the case of integer types.
libs/libc/stdio: Remove CONFIG_NOPRINTF_FIELDWIDTH. That option does, indeed, make the printf family of functions much smaller. But it also adds a lot of complexity and makes the functions non-standard. Removing this might break some of the tinier platforms but it is the best thing to do for long term maintanance for for OpenGroup.org compliance.
2018-10-05 09:33:48 -06:00
Gregory Nutt
8eac8ee52a
Trivial updates after review of last merge.
2018-10-03 11:22:22 -06:00
Mihai Serban
b01e6e5f2a
libs/libc/stdio/lib_sscanf.c: Fix conversion for format specifiers that appear right after a floating point format specifier
...
When performing a floating point conversion the parsing code could
consume more than required characters from the input buffer. This made
impossible to convert input of form "1.1K" using format "%f%c".
Fix the issue by advancing the input buffer with the actual characters
converted as a float point number.
Signed-off-by: Mihai Serban <mihai.serban@gmail.com>
2018-10-03 11:15:44 -06:00
Gregory Nutt
faefa6cd9f
libs/libc/netdb/lib_getaddrinfo.c: Fix a warning found in build testing.
2018-10-02 11:16:47 -06:00
Anthony Merlino
5e69b6e09f
Merged in antmerlino/nuttx/getaddrinfo-improvements (pull request #726 )
...
A few improvements to getaddrinfo:
- Use the protocol and socktype hints in returned address
- Ignore AI_PASSIVE argument if hostname is not NULL
Approved-by: GregoryN <gnutt@nuttx.org>
2018-09-25 17:00:57 +00:00
Gregory Nutt
3950398841
libs/libc/string/lib_stpncpy.c: Correct the return poineter value for the case where the NUL terminator is transferred.
2018-09-18 06:43:10 -06:00
Gregory Nutt
68d4c1d4ed
C library: Add some new functions defined in POSIX.1-2017: stpncpy(), strsignal(), psignal(), psiginfo().
2018-09-17 13:55:33 -06:00
Gregory Nutt
7769bd490c
sched/signal/sig_nanosleep.c: Fix an error introduced with recent commit. Noted by Jussi Kivilinna.
2018-09-17 06:21:25 -06:00
Rajan Gill
d647127d14
libs/libc/math: Small change to log() and logf() that improves accuracy and convergence time
2018-09-16 15:14:15 -06:00
Rajan Gill
6da2658fdd
libs/libc/math: Add variable convergence in log() and logf() to avoid hangs caused by failure to converge for very specific input values.
2018-09-16 12:22:36 -06:00