1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 09:57:35 +00:00
serenity/Userland/Libraries/LibC
Gunnar Beutner 06883ed8a3 Kernel+Userland: Make the stack alignment comply with the System V ABI
The System V ABI for both x86 and x86_64 requires that the stack pointer
is 16-byte aligned on entry. Previously we did not align the stack
pointer properly.

As far as "main" was concerned the stack alignment was correct even
without this patch due to how the C++ _start function and the kernel
interacted, i.e. the kernel misaligned the stack as far as the ABI
was concerned but that misalignment (read: it was properly aligned for
a regular function call - but misaligned in terms of what the ABI
dictates) was actually expected by our _start function.
2021-07-10 01:41:57 +02:00
..
arch Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
arpa Userland: Treat inet_pton returning 0 as an error 2021-05-27 22:56:21 +02:00
bits LibC+LibPthread: Add PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP 2021-07-05 23:30:15 +02:00
net LibC: Add definitions/stubs for IPv6 functionality 2021-05-09 21:16:11 +02:00
netinet LibC: Add definitions/stubs for IPv6 functionality 2021-05-09 21:16:11 +02:00
sys LibC: Make makedev()/minor()/major() static 2021-07-09 15:36:50 +02:00
alloca.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
assert.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
assert.h LibC: Don't use C++ attribute syntax in C-visible headers 2021-07-03 01:56:31 +04:30
byteswap.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
CMakeLists.txt Kernel+Userland: Make the stack alignment comply with the System V ABI 2021-07-10 01:41:57 +02:00
crt0.cpp Kernel+Userland: Make the stack alignment comply with the System V ABI 2021-07-10 01:41:57 +02:00
crt0_shared.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
crti.S Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
crtn.S Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ctype.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ctype.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
cxxabi.cpp LibC: Don't use C++ attribute syntax in C-visible headers 2021-07-03 01:56:31 +04:30
dirent.cpp LibC: Fix struct layout for sys_dirent on x86_64 2021-06-29 20:03:36 +02:00
dirent.h LibC: Implement scandir(...) to enumerate directories. 2021-05-02 13:33:41 +02:00
dlfcn.cpp LibC+LibELF: Implement dladdr() 2021-06-06 22:16:11 +02:00
elf.h LibELF: Add stub for R_X86_64_TPOFF64 2021-06-29 20:03:36 +02:00
endian.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
errno.h LibC: Don't clear errno on success 2021-05-30 19:37:32 +02:00
errno_numbers.h LibC: Add definition for EDQUOT 2021-05-08 18:11:52 +02:00
fcntl.cpp Userland+LibCore: Update FileWatcher + its users for InodeWatcher 2.0 2021-05-12 22:38:20 +02:00
fcntl.h Kernel+LibC: Add fstatat 2021-05-14 23:32:10 +02:00
fd_set.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
fenv.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
fenv.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
float.h LibC: Don't include fenv.h from float.h 2021-07-08 10:11:00 +02:00
getopt.cpp LibC+Utilities: Add gnu::format attributes 2021-07-08 10:11:00 +02:00
getopt.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
grp.cpp LibC: Replace fprintf(stderr) with warnln() 2021-05-31 17:43:54 +01:00
grp.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
iconv.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
inttypes.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
inttypes.h LibC: Add definition for PRIuPTR 2021-06-18 16:35:15 +02:00
ioctl.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
libcinit.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
libgen.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
libgen.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
limits.h Userland: Move HOST_NAME_MAX to limits.h 2021-04-27 23:06:16 +02:00
link.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
link.h LibELF+LibC: Support building LibELF for 64-bit targets 2021-05-03 08:42:39 +02:00
locale.cpp LibC: Let setlocale() pretend that setting the locale succeeded 2021-06-05 10:56:37 +02:00
locale.h LibC: Add definition for LC_MESSAGES 2021-05-08 19:14:21 +02:00
malloc.cpp LibC: Re-run clang-format on malloc.cpp 2021-07-09 14:14:22 +02:00
mallocdefs.h LibC: Expose PAGE_ROUND_UP in mallocdefs.h 2021-06-12 22:50:40 +04:30
memory.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
mntent.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
mntent.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
net.cpp LibC: Add definitions/stubs for IPv6 functionality 2021-05-09 21:16:11 +02:00
netdb.cpp LibC: Replace fprintf(stderr) with warnln() 2021-05-31 17:43:54 +01:00
netdb.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
paths.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
poll.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
poll.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
pthread_forward.cpp LibC+AK: Remove our custom macros from <assert.h> 2021-06-08 17:29:57 +02:00
pthread_integration.cpp LibC: Only set owner on recursive mutexes 2021-07-06 17:25:34 +02:00
pthread_tls.cpp Toolchain+Userland: Enable TLS for x86_64 2021-07-04 01:07:28 +02:00
pty.cpp LibC: openpty error handling update 2021-05-30 08:41:17 +02:00
pty.h LibC: Remove 'int* aslave' parameter from forkpty() 2021-05-06 13:52:46 +01:00
pwd.cpp LibC: Do not include errno.h inside unistd.h 2021-05-14 22:24:02 +02:00
pwd.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
qsort.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
regex.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
scanf.cpp LibC: Convert LengthModifier & ConversionSpecifier to enum classes 2021-07-04 20:08:28 +01:00
sched.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
sched.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
serenity.cpp Kernel+KeyboardSettings: Remove numlock syscall and implement ioctl 2021-07-07 10:44:20 +02:00
serenity.h LibC+LibPthread: Use FUTEX_PRIVATE_FLAG in more places 2021-07-07 17:08:40 +02:00
setjmp.h LibC: Fix jmp_buf layout on x86_64 2021-07-01 12:05:59 +02:00
shadow.cpp LibC: Allow empty spwd members when writing shadow entries via putspent 2021-05-30 17:42:03 +01:00
shadow.h LibCore: Fix building the library on macOS 2021-05-01 15:56:16 +02:00
signal.cpp LibC: Add stub implementation for sigsuspend 2021-06-09 19:41:23 +01:00
signal.h LibC: Fix typo in signal.h: ol_dset -> old_set 2021-04-26 11:27:13 +02:00
signal_numbers.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
spawn.cpp LibC: Do not include errno.h inside unistd.h 2021-05-14 22:24:02 +02:00
spawn.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ssp.cpp LibC: Don't use C++ attribute syntax in C-visible headers 2021-07-03 01:56:31 +04:30
stat.cpp Kernel+LibC: Add fstatat 2021-05-14 23:32:10 +02:00
stdarg.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
stddef.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
stdint.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
stdio.cpp Everywhere: Fix some alignment issues 2021-07-03 01:56:31 +04:30
stdio.h LibC: Add P_tmpdir macro 2021-06-21 12:21:03 +02:00
stdio_ext.h LibC: Implement __fpurge 2021-05-30 14:56:50 +01:00
stdlib.cpp LibC: Implement mblen() 2021-06-04 10:39:41 +02:00
stdlib.h LibC: Implement mblen() 2021-06-04 10:39:41 +02:00
string.cpp LibC: Implement memcpy and memset for x86_64 2021-06-28 22:29:28 +02:00
string.h LibC: Implement strerror_r() 2021-05-25 17:36:02 +02:00
strings.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
strings.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
stubs.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
sysexits.h LibC: Use EX_IOERR instead of EX_IOER 2021-06-10 20:21:08 +01:00
syslog.cpp LibC: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
syslog.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
termcap.cpp LibC: Make tgetnum() return -1 if capability is not available 2021-06-09 19:41:23 +01:00
termcap.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
termios.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
termios.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
time.cpp Revert "Userland: static vs non-static constexpr variables" 2021-05-21 10:30:52 +01:00
time.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
times.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ulimit.cpp LibC: Add stubs for getrlimit()/setrlimit() 2021-05-08 19:14:21 +02:00
ulimit.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
unistd.cpp Kernel+LibC: Remove sys$donate() 2021-07-05 23:30:15 +02:00
unistd.h Kernel+LibC: Remove sys$donate() 2021-07-05 23:30:15 +02:00
utime.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
utime.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
utmp.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
utsname.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
wchar.cpp LibC: Stub out btowc 2021-05-30 14:56:50 +01:00
wchar.h LibC: Add stubs for wctype and iswctype 2021-05-30 14:56:50 +01:00
wctype.cpp LibC: Add stubs for wctype and iswctype 2021-05-30 14:56:50 +01:00
wctype.h LibC: Add stubs for wctype and iswctype 2021-05-30 14:56:50 +01:00