Re: [OE-core] [PATCH] make: disable use of posix_spawn on mips

2020-02-29 Thread Adrian Bunk
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

2020-02-29 Thread Victor Kamensky via Openembedded-core
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