diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-01-06 23:39:12 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-01-07 14:05:06 +0200 |
| commit | 9cc125fb3cfdc2c8ae7153b5ae0fe705980835fb (patch) | |
| tree | a1974f9513458acab0bd8d09758259b24b6d7d8c /common | |
| parent | f0eba93472e0afecc57180fc0d638eeef8e6f3c6 (diff) | |
| download | kmi-9cc125fb3cfdc2c8ae7153b5ae0fe705980835fb.tar.gz kmi-9cc125fb3cfdc2c8ae7153b5ae0fe705980835fb.zip | |
Allow building with clang
+ Release mode is sort of broken, as lto doesn't work with linker
relaxation and turning the relaxation off causes issues with the jump
from init to kernel (as I've currently implemented it, could probably
be fixed with a manual jump from assembly, I'll add it to my TODO
list)
Diffstat (limited to 'common')
| -rw-r--r-- | common/bytes.c | 3 | ||||
| -rw-r--r-- | common/initrd.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/common/bytes.c b/common/bytes.c index af65568..a5b3c4a 100644 --- a/common/bytes.c +++ b/common/bytes.c @@ -3,11 +3,13 @@ #include <apos/bytes.h> #include <apos/builtin.h> +#undef __bswap16 __weak uint16_t __bswap16(uint16_t u) { return (u & 0xff00) >> 8 | (u & 0x00ff) << 8; } +#undef __bswap32 __weak uint32_t __bswap32(uint32_t u) { return (u & 0xff000000) >> 24 | @@ -16,6 +18,7 @@ __weak uint32_t __bswap32(uint32_t u) (u & 0x000000ff) << 24; } +#undef __bswap64 __weak uint64_t __bswap64(uint64_t u) { return (u & 0xff00000000000000ULL) >> 56 | diff --git a/common/initrd.c b/common/initrd.c index afce2ec..77ce091 100644 --- a/common/initrd.c +++ b/common/initrd.c @@ -6,7 +6,7 @@ #include <libfdt.h> /* GNU cpio, use POSIX 'newc' format */ -__packed struct cpio_header { +struct __packed cpio_header { char c_magic[6]; char c_ino[8]; char c_mode[8]; |
