1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

86 Commits

Author SHA1 Message Date
Marian Buschsieweke
f34cd3f7c1
cpu/native: fix build with musl
This changes a bunch of things that allows building with the musl C lib,
provided that `libucontext-dev` and `pkg-config` are installed.

Note that installing libucontext makes absolutely zero sense on C libs
that do natively provide this deprecated System V API, such as glibc.
Hence, it no sane glibc setup is expected to ever have libucontext
installed.

A main pain point was that argv and argc are expected to be passed to
init_fini handlers, but that is actually a glibc extension. This just
parses `/proc/self/cmdline` by hand to populate argv and argc during
startup, unless running on glibc.
2024-05-31 12:18:33 +02:00
Frederik Haxel
16eff9b6ed native: Linux/x86_64 support
Initial version to test 64 bit compatibility.

Instead of a separate board, the inital version for Linux/x86_64 is enabled
by setting the environment variable `NATIVE_64BIT=y` and compiling as usual.

Not currently implemented:
* Architectures other than x86_64 or operating systems other than Linux
    * No FreeBSD support
    * No Aarch support
* Rust support for x86_64
2024-01-30 16:33:19 +01:00
Marian Buschsieweke
50b841e154
cpu/native: drop unused real_setitimer 2023-11-02 14:12:54 +01:00
Benjamin Valentin
006ad81c0c cpu/native: wire up more fs related syscalls 2023-04-25 13:28:20 +02:00
Benjamin Valentin
8ec1934226 cpu/native: add braces to condition 2023-04-25 13:27:39 +02:00
Teufelchen1
10cada1b8d native/syscalls: rename real_clock_gettime to clock_gettime 2023-04-17 15:21:52 +02:00
MrKevinWeiss
66570cb0fb
cpu/native: Use ztimer instead of xtimer 2023-03-07 13:08:58 +01:00
chrysn
494942b981 native/stdio: Explicitly provide getchar
This ensures that even when libc does not implement getchar through
getc, any custom stdio is still in the loop when getchar is used.
2023-02-27 20:43:15 +01:00
Benjamin Valentin
8a80e70e5e cpu/native: syscalls: provide real_recv() 2023-01-10 14:24:16 +01:00
Benjamin Valentin
0aa931ad7d cpu/native: povide real_ftell() function 2022-09-29 14:55:27 +02:00
Francisco Molina
0819660303 sys/syscalls: add libc_gettimeofday
Conditionally implement gettimeofday() if module is included, this
avoids including ztimer64 even when not needed
2022-03-24 11:36:49 +01:00
c5b3934767 cpu/native: improve getpid() stub message 2022-02-16 11:38:32 +01:00
Marian Buschsieweke
09b8387df4
cpu/native: align stack in thread_stack_init()
Unaligned accesses on x86(_64) are allowed, but slow. However, some host systems
might not be that forgiving. Aligning the stack to sizeof(uintptr_t) should be
a pretty safe safety measure.

And with this done, all casts of the stack pointer that increase alignment
requirements are now intermediately casted to `uintptr_t` to silence
warnings from -Wcast-align - after all the stacks are now manually aligned.
2021-11-06 20:22:10 +01:00
Benjamin Valentin
13e16fa34f cpu/native: make use of stdio_read() / stdio_write()
On `native` the functions stdio_read() / stdio_write() were not
used.
Those functions are intended for alternative stdio implementations.
As a result, no alternative stdio could be used on `native`.

To fix this, call the functions in `_native_read()` / `_native_write()`
when dealing with stdio fds.
2021-09-22 17:22:30 +02:00
Jan Romann
4384795cb9
treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
Benjamin Valentin
99341a3dc4 cpu/native: export send() as real_send() 2021-02-20 20:35:33 +01:00
Bas Stottelaar
94171b7389 cpu/*: replace #if ENABLE_DEBUG with IS_ACTIVE 2020-11-02 21:34:12 +01:00
Bas Stottelaar
22243aec7a cpu/*: realign ENABLE_DEBUG 2020-10-23 00:46:26 +02:00
avinash
7d21cb9bb8 cpu/native: fix memory leak
In make_message API in syscall.c, memory should be freed before returning
Fixes issue: #15016

Signed-off-by: avinash <avitahakiknash@gmail.com>
2020-10-21 03:16:25 -07:00
Marian Buschsieweke
b657ebc39a
cpu/native: Don't access sched_active_*
Replaced accesses to sched_active_* with API calls in C files
2020-08-17 12:16:08 +02:00
a274ea45fc cpu/native: async_read: rewrite select() call to poll()
select() can not listen to POLLPRI events which are used by the
Kernel's GPIO API.

In preparation for that, rewrite async_read() to use poll() instead
of select().
2020-07-21 11:50:18 +02:00
Sören Tempel
e2b8231796 boards/native: fix crash with all-asan
Without this change a RIOT application compiled with all-asan will
segfault as RIOT provides its own malloc by default. Add a define for
disabling custom malloc, calloc and realloc implementations and use it
when compiling with all-asan.
2020-01-12 16:17:48 +01:00
Martine Lenders
ad133da209 native: ignore -Wformat-nonliteral for formatting syscalls
The point of that call is to wrap the actual host system's formatting
functions, so the non-literal formatting string is alright here.
2018-08-01 09:03:01 +02:00
4133908fe0 cpu/native: fix doxygen grouping 2018-06-11 19:12:02 +02:00
smlng
f63f3b2a4b cpu, native: replace timex_t in syscalls 2018-01-23 14:35:24 +01:00
Martine Lenders
81ef15287a native: provide socket-based ZEP device 2018-01-18 09:15:37 +01:00
Martine Lenders
25b2e65b77 cpu: native: make syscalls vfs ready (introduce real_fcntl) 2017-03-22 20:18:57 +01:00
Vincent Dupont
9e8cb3d135 native: add mtd-compliant flash emulation 2017-03-16 11:24:22 +01:00
Ludwig Ortmann
3b6d0595ef native: indicate interrupt status in ISR context 2016-10-15 07:50:44 +02:00
Iván Briano
6846b4ebdd cpu: native: Add [v]fprintf to syscalls
External packages that may use fprintf(stderr, ...) for logging will
link directly to the libc version of it, and for some reason that
results in the application crashing.
2016-06-03 16:05:14 -03:00
kYc0o
f92b025b85 vtimer: get rid of 2016-03-24 17:10:54 +01:00
DipSwitch
0bb4748a94 core: Fix/refactor function naming in core/incude/irq.h 2016-03-20 16:47:34 +01:00
9082273746 core: header cleanup 2016-02-28 22:46:28 +01:00
Oleg Hahm
6d135d3579 native: make use of TLSF malloc and co
In order to make native behave more similar to other platforms, it should also use TLSF's dynamic memory allocation if included. It will still fall back to the system's malloc implementation when building for use with valgrind, to leverage its memory leak detection mechanisms.
2016-01-03 20:53:08 +01:00
BytesGalore
529e83675e cpp11: switched to use xtimer
Also switched the syscalls of cpu/native to use xtimer, only at _gettimeofday()
2015-11-27 18:36:25 +01:00
Ludwig Knüpfer
dd3229aa62 native: dynamically load malloc
g++ 5.2.0 apparently requires malloc before startup is run.
2015-10-04 18:13:12 +02:00
effb15a2cc Merge pull request #3313 from gebart/pr/eINT-fixes
eINT/dINT fixes
2015-09-29 12:39:16 +02:00
Ludwig Knüpfer
eda6328e21 documentation: update my name (Ortmann -> Knüpfer) 2015-09-27 18:58:30 +02:00
Joakim Gebart
0d2efd5fe7 native/syscalls: Use restoreIRQ 2015-09-19 10:35:58 +02:00
ef972735dc sys: net: replace dev_eth with netdev2, adapt native tap driver 2015-09-04 15:39:04 +02:00
Benoît Canet
4893d4daea native: irq: Get rid of dINT() and eINT()
Get rid of internal usage of the old IRQ
API and keep it's implementation while
waiting for other modules to kill it.
2015-07-29 16:51:22 +02:00
Martine Lenders
8a33a62914 native: add address sanitizer make target 2015-07-09 15:00:19 +02:00
Ludwig Ortmann
9a130e2e84 cpu/native: add some syscall wrappers
Add wrappers for chdir, setsid, and umask.
2015-02-17 22:00:14 +01:00
Ludwig Ortmann
3ab73bc633 cpu/native: init _native_in_calloc explicitly 2015-01-11 10:59:49 +01:00
Ludwig Ortmann
f5cfda977a cpu/native: fix real_calloc initialization 2015-01-11 10:59:49 +01:00
Ludwig Ortmann
00092e8308 native: add time syscalls 2014-11-25 22:47:27 +01:00
Ludwig Ortmann
4de10a2ecb native: coding conventions 2014-11-25 22:47:27 +01:00
Ludwig Ortmann
7901d24053 native: add missing syscall declarations 2014-11-25 22:47:26 +01:00
Ludwig Ortmann
d8641ff525 native: add random syscalls 2014-11-19 14:26:58 +01:00
Ludwig Ortmann
acaa6481cb native: add more syscall declarations 2014-11-14 20:52:17 +01:00