You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
64-bit transition part 13: the rest of ksh93 (#973)
This is the thirteenth of the thickfold patch series, which enables
ksh93 to operate within a 64-bit address space.
This patch applies the rest of the changes to ksh93 necessary for
64-bit memory allocation, along with the usual warning fixes.
Notable changes:
- parse.c: Fixed a build error when using SHOPT_KIA (re: 63366e3).
- sh_pipe(): Fix broken SOCK_CLOEXEC check. The !SOCK_CLOEXEC check
in the #if directive apparently didn't work[*], as strace was
showing unnecessary fcntl calls were still getting compiled in.
Check for SOCK_CLOEXEC==0 in a non-preprocessor if statement and
let the compiler optimize it away, which actually works
correctly.
- Also removed some unnecessary ptrdiff_t casts.
- Add a (Linux-specific) regression test for allocating 5GB (we
check if plenty of RAM is available via /proc/meminfo).
- locale.sh: Disable a test that requires SHOPT_MULTIBYTE to work
correctly.
Change in the number of warnings on Linux when compiling with clang
using -Wsign-compare -Wshorten-64-to-32 -Wsign-conversion
-Wimplicit-int-conversion: 352 => 37 (progression from part 12 =>
part 13)
The nvflags warnings that remain will be addressed in a separate
follow-up patch of their own (which doesn't affect memory
allocation).
Resolves: #592
[*] (Martijn adds) On Linux, the SOCK_* macros defined in
/usr/include/bits/socket_type.h are bizarrely defined as their own
names (which refer to members of an enum type), which kills the #if
logic in the preprocessor. This could be an issue with other macros
on other systems too, so it's something to look out for in future.
0 commit comments