patches/glibc/ports-2.10.1/630-mips_shn_undef-hack.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Nov 04 19:22:29 2011 +0100 (2011-11-04)
changeset 2735 f09ed6dd71a3
permissions -rw-r--r--
kernel/linux: fix packed attribute in exported headers

UBI headers (and maybe others as well) are broken because the 'packed'
attribute is not sanitised when the headers are exported to userspace.

Apply the fix from upstream:
https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=f210735fe2f17a6225432ee3d1239bcf23a8659c

(Also, buildroot does the same, BTW)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 	Hack from Debian to hopefully get sandbox working on mips
     2 
     3 <`Kumba> ths: given the SHN_UNDEF thing is a hack, what's the preferred solution?
     4 <ths> For fakeroot the simplest trigger is "fakeroot file /bin/ls".
     5 <ths> `Kumba: I haven't found a better one yet.
     6 <ths> Probably marker symbols around the stub section, and then exclude it from the link map.
     7 <ths> This needs a ld change.
     8 
     9 diff -durN glibc-2.10.1.orig/elf/do-lookup.h glibc-2.10.1/elf/do-lookup.h
    10 --- glibc-2.10.1.orig/elf/do-lookup.h	2009-03-30 23:14:32.000000000 +0200
    11 +++ glibc-2.10.1/elf/do-lookup.h	2009-11-13 00:51:36.000000000 +0100
    12 @@ -248,6 +248,12 @@
    13  		}
    14  	      /* FALLTHROUGH */
    15  	    case STB_GLOBAL:
    16 +#ifdef __mips__
    17 +	      /* HACK: MIPS marks its lazy evaluation stubs with SHN_UNDEF
    18 +		 symbols, we skip them. */
    19 +	      if (sym->st_shndx == SHN_UNDEF)
    20 +		break;
    21 +#endif
    22  	      /* Global definition.  Just what we need.  */
    23  	      result->s = sym;
    24  	      result->m = (struct link_map *) map;