Patchwork libgo patch committed: Fix for changes to <sys/resource.h>

login
register
mail settings
Submitter Ian Taylor
Date June 5, 2012, 5:33 a.m.
Message ID <mcrsjeaxqzq.fsf@dhcp-172-18-216-180.mtv.corp.google.com>
Download mbox | patch
Permalink /patch/163006/
State New
Headers show

Comments

Ian Taylor - June 5, 2012, 5:33 a.m.
Recently the version of <sys/resource.h> in glibc changed to pick up
some anonymous unions:

http://sourceware.org/git/?p=glibc.git;a=blobdiff;f=sysdeps/unix/sysv/linux/bits/resource.h;h=62cb257410cb294799eddf83602fdd8de30f772f;hp=be852e52472e8f3cd721cc0201a275fcbea89558;hb=5e1a27a96de16ad0cd67a81e25741790b32e2c25;hpb=46259beccca5f4b3a6c64a1b84b2c09f079eb3ae

Frankly I think it would have been better to simply add padding.  But
since the change was made, I have committed this patch to change
mksysinfo to work with it.  This patch is not fully tested, as I am not
running the develoment version of glibc, but it appears to work in
limited testing.  Bootstrapped and committed on x86_64-unknown-linux-gnu
running eglibc 2.11.1.  Committed to mainline and 4.7 branch.

Ian

Patch

diff -r 292e3c15944d libgo/mksysinfo.sh
--- a/libgo/mksysinfo.sh	Sun Jun 03 22:32:46 2012 -0700
+++ b/libgo/mksysinfo.sh	Mon Jun 04 22:29:50 2012 -0700
@@ -524,6 +524,8 @@ 
 if test "$rusage" != ""; then
   rusage=`echo $rusage | sed -e 's/type _rusage struct //' -e 's/[{}]//g'`
   rusage=`echo $rusage | sed -e 's/^ *//'`
+  # Remove anonymous unions from GNU/Linux <bits/resource.h>.
+  rusage=`echo $rusage | sed -e 's/Godump_[0-9]* struct {\([^}]*\)};/\1/g'`
   nrusage=
   while test -n "$rusage"; do
     field=`echo $rusage | sed -e 's/^\([^;]*\);.*$/\1/'`