diff options
| -rw-r--r-- | meta/recipes-core/glibc/glibc/makesyscall.patch | 51 | ||||
| -rw-r--r-- | meta/recipes-core/glibc/glibc_2.21.bb | 1 |
2 files changed, 52 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/glibc/makesyscall.patch b/meta/recipes-core/glibc/glibc/makesyscall.patch new file mode 100644 index 0000000000..9ab597f604 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/makesyscall.patch | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | On x32 builds, sysd-syscalls appears malformed since the make-target-directory | ||
| 2 | appears on the wrong line. This causes races during the build process where you can | ||
| 3 | see failures like: | ||
| 4 | |||
| 5 | Assembler messages: | ||
| 6 | Fatal error: can't create [...]glibc/2.21-r0/build-x86_64-poky-linux-gnux32/time/gettimeofday.os: No such file or directory | ||
| 7 | Assembler messages: | ||
| 8 | Fatal error: can't create [...]glibc/2.21-r0/build-x86_64-poky-linux-gnux32/time/time.os: No such file or directory | ||
| 9 | |||
| 10 | The isue is that the carridge return is being escaped when it should | ||
| 11 | not be. The change to sysd-syscalls with this change: | ||
| 12 | |||
| 13 | before: | ||
| 14 | |||
| 15 | """ | ||
| 16 | $(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,time).os): \ | ||
| 17 | $(..)sysdeps/unix/make-syscalls.sh $(make-target-directory) | ||
| 18 | (echo '#include <dl-vdso.h>'; | ||
| 19 | """ | ||
| 20 | |||
| 21 | after: | ||
| 22 | |||
| 23 | """ | ||
| 24 | $(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,time).os): \ | ||
| 25 | $(..)sysdeps/unix/make-syscalls.sh | ||
| 26 | $(make-target-directory) | ||
| 27 | (echo '#include <dl-vdso.h>'; | ||
| 28 | """ | ||
| 29 | |||
| 30 | which ensures the target directory is correctly created. Only x32 uses the vdso | ||
| 31 | code which contains the bug which is why the error only really appears on x32. | ||
| 32 | |||
| 33 | Upstream Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18409 | ||
| 34 | Upstream Fix: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d9efd775ba51916b58b899d8b1c8501105a830de | ||
| 35 | |||
| 36 | Upstream-Status: Backport | ||
| 37 | RP 2015/5/13 | ||
| 38 | |||
| 39 | Index: git/sysdeps/unix/make-syscalls.sh | ||
| 40 | =================================================================== | ||
| 41 | --- git.orig/sysdeps/unix/make-syscalls.sh | ||
| 42 | +++ git/sysdeps/unix/make-syscalls.sh | ||
| 43 | @@ -278,7 +278,7 @@ while read file srcfile caller syscall a | ||
| 44 | vdso_symver=`echo "$vdso_symver" | sed 's/\./_/g'` | ||
| 45 | echo "\ | ||
| 46 | \$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\ | ||
| 47 | - \$(..)sysdeps/unix/make-syscalls.sh\ | ||
| 48 | + \$(..)sysdeps/unix/make-syscalls.sh | ||
| 49 | \$(make-target-directory) | ||
| 50 | (echo '#include <dl-vdso.h>'; \\ | ||
| 51 | echo 'extern void *${strong}_ifunc (void) __asm (\"${strong}\");'; \\ | ||
diff --git a/meta/recipes-core/glibc/glibc_2.21.bb b/meta/recipes-core/glibc/glibc_2.21.bb index 58a9601034..ac8e8f8200 100644 --- a/meta/recipes-core/glibc/glibc_2.21.bb +++ b/meta/recipes-core/glibc/glibc_2.21.bb | |||
| @@ -26,6 +26,7 @@ SRC_URI = "git://sourceware.org/git/glibc.git;branch=${BRANCH} \ | |||
| 26 | file://0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch \ | 26 | file://0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch \ |
| 27 | file://0001-yes-within-the-path-sets-wrong-config-variables.patch \ | 27 | file://0001-yes-within-the-path-sets-wrong-config-variables.patch \ |
| 28 | file://elf-Makefile-fix-a-typo.patch \ | 28 | file://elf-Makefile-fix-a-typo.patch \ |
| 29 | file://makesyscall.patch \ | ||
| 29 | ${EGLIBCPATCHES} \ | 30 | ${EGLIBCPATCHES} \ |
| 30 | " | 31 | " |
| 31 | EGLIBCPATCHES = "\ | 32 | EGLIBCPATCHES = "\ |
