Files
ubports_kernel_google_msm/include/linux
Andi Kleen be27425dcc Add a personality to report 2.6.x version numbers
I ran into a couple of programs which broke with the new Linux 3.0
version.  Some of those were binary only.  I tried to use LD_PRELOAD to
work around it, but it was quite difficult and in one case impossible
because of a mix of 32bit and 64bit executables.

For example, all kind of management software from HP doesnt work, unless
we pretend to run a 2.6 kernel.

  $ uname -a
  Linux svivoipvnx001 3.0.0-08107-g97cd98f #1062 SMP Fri Aug 12 18:11:45 CEST 2011 i686 i686 i386 GNU/Linux

  $ hpacucli ctrl all show

  Error: No controllers detected.

  $ rpm -qf /usr/sbin/hpacucli
  hpacucli-8.75-12.0

Another notable case is that Python now reports "linux3" from
sys.platform(); which in turn can break things that were checking
sys.platform() == "linux2":

  https://bugzilla.mozilla.org/show_bug.cgi?id=664564

It seems pretty clear to me though it's a bug in the apps that are using
'==' instead of .startswith(), but this allows us to unbreak broken
programs.

This patch adds a UNAME26 personality that makes the kernel report a
2.6.40+x version number instead.  The x is the x in 3.x.

I know this is somewhat ugly, but I didn't find a better workaround, and
compatibility to existing programs is important.

Some programs also read /proc/sys/kernel/osrelease.  This can be worked
around in user space with mount --bind (and a mount namespace)

To use:

  wget ftp://ftp.kernel.org/pub/linux/kernel/people/ak/uname26/uname26.c
  gcc -o uname26 uname26.c
  ./uname26 program

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-08-25 10:17:28 -07:00
..
2011-07-26 16:49:47 -07:00
2011-07-22 08:25:37 -07:00
2011-07-26 16:49:47 -07:00
2011-07-20 20:47:43 -04:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-08-03 11:30:42 -04:00
2011-08-11 10:36:05 +02:00
2011-07-31 22:05:09 +02:00
2011-07-26 16:49:47 -07:00
2011-05-26 17:12:34 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-08-03 19:06:37 -04:00
2011-07-26 16:49:47 -07:00
2011-07-06 14:44:42 -07:00
2011-07-25 20:57:16 -07:00
2011-07-05 23:42:17 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-05-23 10:47:06 -05:00
2011-05-29 13:03:09 +01:00
2011-05-24 10:21:29 +02:00
2011-05-24 10:21:29 +02:00
2011-07-26 16:49:47 -07:00
2011-06-25 17:29:52 +02:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-08-06 22:53:23 -07:00
2011-08-08 16:08:08 +02:00
2011-07-01 15:34:45 -07:00
2011-06-28 10:48:34 +02:00
2011-05-25 20:43:32 +02:00
2011-07-01 10:37:15 +02:00
2011-07-06 01:56:38 -07:00
2011-07-21 13:47:54 -07:00
2011-07-26 16:49:47 -07:00
2011-06-14 11:30:22 +02:00
2011-05-26 17:12:37 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-05-24 14:33:35 +02:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-05 15:26:58 -04:00
2011-07-31 12:18:15 -04:00
2011-07-31 12:18:16 -04:00
2011-07-28 16:19:22 -06:00
2011-08-09 11:27:16 -06:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-05-26 17:12:37 -07:00
2011-05-24 12:10:51 +02:00
2011-07-22 16:14:29 -07:00
2011-07-26 16:49:47 -07:00
2011-07-23 07:56:59 +01:00
2011-05-25 08:39:19 -07:00
2011-07-26 14:50:01 -07:00
2011-07-26 16:49:47 -07:00
2011-06-07 10:02:35 +02:00
2011-07-26 16:49:47 -07:00
2011-07-30 08:44:19 -10:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-25 20:57:11 -07:00
2011-07-26 16:49:47 -07:00
2011-08-03 14:25:22 -10:00
2011-07-26 16:49:47 -07:00
2011-06-15 20:03:59 -07:00
2011-06-27 20:30:08 +02:00
2011-06-07 09:05:42 -07:00
2011-05-30 11:14:16 +09:30
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00