
This is necessary for better CGo support on bare metal. Existing libraries expect to be able to include parts of libc and expect to be able to link to those symbols. Because with this all targets have a working libc, it is now possible to add tests to check that a libc in fact works basically. Not all parts of picolibc are included, such as the math or stdio parts. These should be added later, when needed. This commit also avoids the need for the custom memcpy/memset/memcmp symbols that are sometimes emitted by LLVM. The C library will take care of that.
58 строки
1 КиБ
Text
58 строки
1 КиБ
Text
fortytwo: 42
|
|
add: 8
|
|
myint: 3 5
|
|
myint size: 2
|
|
longlong: -1099511627776
|
|
global: 3
|
|
defined ints: 5 5
|
|
defined floats: +5.800000e+000 +5.800000e+000
|
|
defined string: defined string
|
|
defined char: 99
|
|
15: 15
|
|
25: 25
|
|
callback 1: 50
|
|
callback 2: 600
|
|
bool: true true
|
|
float: +3.100000e+000
|
|
double: +3.200000e+000
|
|
complex float: (+4.100000e+000+3.300000e+000i)
|
|
complex double: (+4.200000e+000+3.400000e+000i)
|
|
complex long double: (+4.300000e+000+3.500000e+000i)
|
|
char match: true
|
|
void* match: true true true
|
|
int64_t match: true
|
|
struct: true 256 -123456 +3.140000e+000
|
|
array: 5 6 7
|
|
union: true
|
|
union s: 22
|
|
union f: +3.140000e+000
|
|
union global data: 5 8 1
|
|
union local data: 5 8 1
|
|
union s: true
|
|
union f: +6.280000e+000
|
|
union field: +6.280000e+000
|
|
bitfield a: 15
|
|
bitfield b: 1
|
|
bitfield c: 2
|
|
bitfield d: 47
|
|
bitfield e: 5
|
|
bitfield a: 7
|
|
bitfield b: 0
|
|
bitfield c: 3
|
|
bitfield d: 47
|
|
bitfield e: 5
|
|
struct: 3 5
|
|
n in chain: 3
|
|
n in chain: 6
|
|
n in chain: 7
|
|
option: 12
|
|
option A: 0
|
|
option B: 1
|
|
option C: -5
|
|
option D: -4
|
|
option E: 10
|
|
option F: 11
|
|
option G: 12
|
|
option 2A: 20
|
|
option 3A: 21
|
|
copied string: foobar
|