BUILD: init: print rlim_cur as regular integer

haproxy does not compile anymore on macOS+clang since 425d7ad ("MINOR:
init: pre-allocate kernel data structures on init"). This is due to
rlim_cur being printed uncasted using %lu format specifier, with rlim_cur
being stored as a rlim_t which is a typedef so its size may vary depending
on the system's architecture.

This is not the first time we need to dump rlim_cur in case of errors,
there are already multiple occurences in the init code. Everywhere this
happens, rlim is casted as a regular int and printed using the '%d'
format specifier, so we do the same here as well to fix the build issue.

No backport needed unless 425d7ad gets backported.
This commit is contained in:
Aurelien DARRAGON 2023-05-26 14:04:18 +02:00 committed by Christopher Faulet
parent ef667b1ad8
commit 33bbeecde3

View File

@ -3524,8 +3524,8 @@ int main(int argc, char **argv)
if (global.prealloc_fd && fcntl((int)limit.rlim_cur - 1, F_GETFD) == -1) { if (global.prealloc_fd && fcntl((int)limit.rlim_cur - 1, F_GETFD) == -1) {
if (dup2(0, (int)limit.rlim_cur - 1) == -1) if (dup2(0, (int)limit.rlim_cur - 1) == -1)
ha_warning("[%s.main()] Unable to preallocate file descriptor %lu : %s", ha_warning("[%s.main()] Unable to preallocate file descriptor %d : %s",
argv[0], limit.rlim_cur-1, strerror(errno)); argv[0], (int)limit.rlim_cur - 1, strerror(errno));
else else
close((int)limit.rlim_cur - 1); close((int)limit.rlim_cur - 1);
} }