aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-01-06 23:39:12 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2022-01-07 14:05:06 +0200
commit9cc125fb3cfdc2c8ae7153b5ae0fe705980835fb (patch)
treea1974f9513458acab0bd8d09758259b24b6d7d8c /common
parentf0eba93472e0afecc57180fc0d638eeef8e6f3c6 (diff)
downloadkmi-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.c3
-rw-r--r--common/initrd.c2
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];