Skip to content

Commit fb63d7b

Browse files
committed
Update changelog
Moved multilib details to README.md and expanded them.
1 parent 2541b78 commit fb63d7b

File tree

2 files changed

+46
-5
lines changed

2 files changed

+46
-5
lines changed

CHANGELOG.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,24 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66

7-
## [Unreleased]
7+
## [16.0.0]
88

99
### Added
1010

11-
- Support for locales and input/output streams
11+
- Support for locales and input/output streams (#149)
1212
- Experimental support for Armv4T and Armv5TE architectures (#177)
13+
- Provide binary releases for macOS (#86)
1314
- Support for building locally on Windows & macOS (#188)
14-
- Experimental support for multilib, meaning that clang can now automatically select an appropriate set of libraries based on your compile flags, without needing either an explicit `--sysroot` option or a `--config` option. However, the config files are still present, and you can still use them instead.
15+
- Experimental support for multilib (#110).
16+
See [README.md](README.md#experimental-multilib) for more details.
1517

1618
### Fixed
1719

1820
- lld freezing on Windows (#83)
21+
- Packages now extract into a LVMEmbeddedToolchainForArm-VERSION-PLATFORM subdirectory (#179)
1922

2023
### Changed
2124

22-
- Packages now extract into a LVMEmbeddedToolchainForArm-VERSION-PLATFORM subdirectory.
2325
- Windows release packages are now signed.
2426

2527

README.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ and extract the archive into an arbitrary directory.
7676
To use the toolchain, on the command line you need to provide:
7777
* A [configuration file](
7878
https://clang.llvm.org/docs/UsersManual.html#configuration-files) specified
79-
with `--config`.
79+
with `--config`, or a suitable set of command line options including the
80+
`crt0` library to use - see [experimental multilib](#experimental-multilib).
8081
* A [linker script](
8182
https://sourceware.org/binutils/docs/ld/Scripts.html) specified with `-T`.
8283
Default `picolibcpp.ld` & `picolibc.ld` scripts are provided and can be used
@@ -98,6 +99,44 @@ $ ls <install-dir>/LLVMEmbeddedToolchainForArm-<revision>/bin/*.cfg
9899
> *Note:* If you are using the toolchain in a shared environment with untrusted input,
99100
> make sure it is sufficiently sandboxed.
100101
102+
### Experimental multilib
103+
104+
The clang provided by LLVM Embedded Toolchain for Arm 16 can automatically
105+
select an appropriate set of libraries based on your compile flags, without
106+
needing either an explicit `--sysroot` option or a `--config` option.
107+
For example the following will automatically use libraries from the
108+
`lib/clang-runtimes/arm-none-eabi/armv6m_soft_nofp` directory:
109+
110+
```
111+
$ clang \
112+
--target=armv6m-none-eabi \
113+
-fno-exceptions \
114+
-fno-rtti \
115+
-lcrt0-semihost \
116+
-lsemihost \
117+
-T picolibc.ld \
118+
-o example example.c
119+
```
120+
121+
The config files are still present and you can still use them.
122+
123+
It's possible that the multilib system will choose a set of libraries that are
124+
not the ones you want to use. In this case you can bypass the multilib system
125+
by providing a `--sysroot` option specifying the directory containing the
126+
`include` and `lib` directories of the libraries you want to use. For example:
127+
128+
```
129+
$ clang \
130+
--sysroot=<install-dir>/LLVMEmbeddedToolchainForArm-<revision>/lib/clang-runtimes/arm-none-eabi/armv6m_soft_nofp \
131+
--target=armv6m-none-eabi \
132+
-fno-exceptions \
133+
-fno-rtti \
134+
-lcrt0-semihost \
135+
-lsemihost \
136+
-T picolibc.ld \
137+
-o example example.c
138+
```
139+
101140
## Building from source
102141

103142
LLVM Embedded Toolchain for Arm is an open source project and thus can be built

0 commit comments

Comments
 (0)