[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 7/7] libc: Mit -fPIC kompilieren
* libc: Wenn man mit -fPIC kompiliert, sind statt über 3300 Relokationen
nur noch knapp 650 übrig. Und für echte Shared Libraries will man das
früher oder später sowieso, weil damit dann alle Relokationen direkt
nebeneinander liegen und man nicht überall COW machen muss.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
buildmk.sh | 1 -
src/modules/lib/Makefile.conf | 1 +
src/modules/lib/syscalls/lostio.c | 6 +++---
3 files changed, 4 insertions(+), 4 deletions(-)
create mode 100644 src/modules/lib/Makefile.conf
diff --git a/buildmk.sh b/buildmk.sh
index ea0b22f..432e27e 100644
--- a/buildmk.sh
+++ b/buildmk.sh
@@ -81,7 +81,6 @@ if [ -f "user-$LOST_ARCH.ld" ]; then
fi
CC_FLAGS=
-CC_FLAGS_APPEND=
if [ -f Makefile.conf ]; then
source Makefile.conf
fi
diff --git a/src/modules/lib/Makefile.conf b/src/modules/lib/Makefile.conf
new file mode 100644
index 0000000..7141c4b
--- /dev/null
+++ b/src/modules/lib/Makefile.conf
@@ -0,0 +1 @@
+export CC_FLAGS_APPEND="-fPIC"
diff --git a/src/modules/lib/syscalls/lostio.c b/src/modules/lib/syscalls/lostio.c
index 888b76d..a4f63cc 100644
--- a/src/modules/lib/syscalls/lostio.c
+++ b/src/modules/lib/syscalls/lostio.c
@@ -280,7 +280,7 @@ ssize_t lio_readf(lio_stream_t s, uint64_t offset, size_t bytes,
"int $0x30;"
"add $0x18, %%esp;"
: : "i" (SYSCALL_LIO_READ), "r" (&s), "r" (&offset), "r" (bytes),
- "r" (buf), "r" (flags), "r" (&result) : "memory");
+ "r" (buf), "r" (flags), "g" (&result) : "memory");
return result;
}
@@ -333,7 +333,7 @@ static ssize_t write_syscall(lio_stream_t s, uint64_t offset, size_t bytes,
"int $0x30;"
"add $0x18, %%esp;"
: : "i" (SYSCALL_LIO_WRITE), "r" (&s), "r" (&offset), "r" (bytes),
- "r" (buf), "r" (updatepos), "r" (&result) : "memory");
+ "r" (buf), "r" (updatepos), "g" (&result) : "memory");
return result;
}
@@ -570,7 +570,7 @@ lio_resource_t lio_mksymlink(lio_resource_t parent,
"int $0x30;"
"add $0x18, %%esp;"
: : "i" (SYSCALL_LIO_MKSYMLINK), "r" (&parent), "r" (name), "r" (name_len),
- "r" (target), "r" (target_len), "r" (&result) : "memory");
+ "r" (target), "r" (target_len), "g" (&result) : "memory");
return result;
}
--
2.1.4