Commit Graph

8 Commits

Author SHA1 Message Date
Stephanos Ioannidis
8073115b4c doc: languages: cpp: Add notes about C++ main()
This commit adds notes about the C++ main() function prototype in the
C++ documentation.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-11-05 16:41:45 +09:00
Stephanos Ioannidis
28b22b276a lib: libc: newlib: Make newlib nano variant optional
The newlib nano variant is currently enabled by default when
`CONFIG_NEWLIB_LIBC=y` and the selected toolchain-architecture
combination includes the newlib nano variant support, even if
`CONFIG_NEWLIB_LIBC_NANO` is not selected by the user.

When `CONFIG_NEWLIB_LIBC=y`, this results in the newlib nano variant
being selected for some architectures (e.g. ARC, ARM and RISC-V), while
the full variant is selected for the rest of the architectures.

The above behaviour is problematic because there exist functional
differences between the newlib full and nano variants (e.g. C99 format
modifiers such as `hh`, `ll`, `z`, `j` and `t` are not available in the
newlib nano variant), and this effectively leads to different level of
C standard support across different architectures when
`CONFIG_NEWLIB_LIBC=y`.

This commit fixes this problem by making the `CONFIG_NEWLIB_LIBC_NANO`
not `default y` and requiring its user to explicitly set this symbol to
`y` when they want to use the newlib nano variant.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-10-19 16:02:51 +02:00
Stephanos Ioannidis
81de0276fc doc: languages: c: Add formatted output section
This commit adds "Formatted Output" section to the "C Language Support"
documentation that describes the C library-specific formatted output
support details.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-09-21 12:37:04 +02:00
Stephanos Ioannidis
3d5a28a394 doc: develop: Fix typo in newlib page
Add a missing space to fix documentation display issues.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-02 12:56:25 +02:00
Stephanos Ioannidis
31b9d00e55 doc: develop: c: Add dynamic memory management documentations
This commit adds the sections describing how the dynamic memory
management is handled to the C language support and standard library
documentations.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-01 15:26:48 +02:00
Stephanos Ioannidis
123e6918f4 doc: develop: Improve C++ language support documentation
This commit reworks the C++ language support documentation such that:

1. it contains more up-to-date information regarding the available
   features.

2. it makes a clear distinction between the Zephyr C++ subsystem and
   the C++ standard library and describe the functionalities they
   provide.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-01 15:26:48 +02:00
Stephanos Ioannidis
3013f21a5c doc: develop: Improve C language support documentation
This commit reworks the C language support documentation such that it
is more up to date and contains more information about the Newlib.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-01 15:26:48 +02:00
Stephanos Ioannidis
c45a2213c6 doc: develop: Add 'Language Support' sub-category
This commit adds the 'Language Support' sub-category under the
'Developing with Zephyr' category with programming language support-
related documentations.

The contents of the 'C standard library' page have been relocated to
the 'C Language Support' page, and the contents of the 'C++ Support for
Applications' page have been relocated to the 'C++ Language Support'
page.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-06-01 15:26:48 +02:00