Re: [OE-core] [PATCH] make: disable use of posix_spawn on mips
On Fri, Feb 28, 2020 at 11:55:46PM -0800, Victor Kamensky via Openembedded-core wrote: > After make-4.3 migration child_execute_job function started > using posix_spawn function, which happens to be broken on mips. > > It manifests itself as when make executed by root, it switches > real user id to wrong value because of some issues with direct > setresuid system call done in glibc __spawni_child function > through inline assemble and/or gcc compiling it produces wrong > code. I.e instead of passing -1 posix_spawn function incorrectly > passes 127 as ruid. Subsequently job started by make can fail > with permission issue because they run under wrong user. Thanks for looking into this. > For now workaround is used by explicitly disabling posix_spawn > call use by make on mips through configure variable. The proper fix would be to upgrade to the latest glibc 2.31 branch, which has backported the fixes for the bug [1] on mips/risc-v/microblaze. cu Adrian [1] https://sourceware.org/bugzilla/show_bug.cgi?id=25523 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] make: disable use of posix_spawn on mips
After make-4.3 migration child_execute_job function started using posix_spawn function, which happens to be broken on mips. It manifests itself as when make executed by root, it switches real user id to wrong value because of some issues with direct setresuid system call done in glibc __spawni_child function through inline assemble and/or gcc compiling it produces wrong code. I.e instead of passing -1 posix_spawn function incorrectly passes 127 as ruid. Subsequently job started by make can fail with permission issue because they run under wrong user. For now workaround is used by explicitly disabling posix_spawn call use by make on mips through configure variable. Signed-off-by: Victor Kamensky --- meta/recipes-devtools/make/make_4.3.bb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta/recipes-devtools/make/make_4.3.bb b/meta/recipes-devtools/make/make_4.3.bb index 70caf0ae16..5fa7059169 100644 --- a/meta/recipes-devtools/make/make_4.3.bb +++ b/meta/recipes-devtools/make/make_4.3.bb @@ -12,6 +12,9 @@ SRC_URI += "\ EXTRA_OECONF += "--without-guile" +EXTRA_OECONF_append_mips=" ac_cv_func_posix_spawn=no" +EXTRA_OECONF_append_mips64=" ac_cv_func_posix_spawn=no" + SRC_URI[md5sum] = "d5c40e7bd1e97a7404f5d3be982f479a" SRC_URI[sha256sum] = "de1a441c4edf952521db30bfca80baae86a0ff1acd0a00402999344f04c45e82" -- 2.21.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core