Create <sgidefs.h> if MUSL doesn't create one

Document the status quo and work around for mips-musl.

Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
Alexey Neyman 2017-01-26 13:50:18 -08:00
parent 675f7bfa4e
commit d7b043e360
3 changed files with 27 additions and 0 deletions

View File

@ -64,5 +64,10 @@ CT_DoArchMUSLHeaderDir() {
:;
}
# MUSL: Perform any final adjustments on the installed libc/headers
CT_DoArchMUSLPostInstall() {
:;
}
# Override from the actual arch implementation as needed.
. "${CT_LIB_DIR}/scripts/build/arch/${CT_ARCH}.sh"

View File

@ -69,3 +69,22 @@ CT_DoArchUClibcCflags() {
esac
done
}
CT_DoArchMUSLPostInstall() {
# GDB and MUSL maintainers seem to disagree on whether <sgidefs.h>
# is to be provided as a part of C library. GDB guys think it is
# a C library responsibility, while MUSL authors think GDB should
# not be using <sgidefs.h>. Neither side is willing to reach out
# to the other and negotiate the needed changes, and I don't want
# to play the middle man. Hence, provide our own wrapper for
# for <sgidefs.h> - the only solution short of telling MUSL users
# stop using it. This is why MUSL is experimental in ct-ng and
# will likely remain in that status.
# References:
# http://www.openwall.com/lists/musl/2017/01/26/2
# https://sourceware.org/ml/gdb-patches/2017-01/msg00469.html
# https://www.sourceware.org/ml/libc-alpha/2004-11/msg00034.html
if [ ! -r "${CT_HEADERS_DIR}/sgidefs.h" ]; then
echo "#include <asm/sgidefs.h> // Redirected by ct-ng" > "${CT_HEADERS_DIR}/sgidefs.h"
fi
}

View File

@ -154,6 +154,9 @@ do_libc_backend_once() {
;;
esac
done
# Any additional actions for this architecture
CT_DoArchMUSLPostInstall
fi
CT_EndStep