gcc 4.7 changes binary behaviors ?

Sérgio Basto sergio at serjux.com
Fri Jan 27 05:22:20 UTC 2012


On Thu, 2012-01-26 at 12:08 +0100, Jan Kratochvil wrote: 
> On Thu, 26 Jan 2012 08:12:43 +0100, Sérgio Basto wrote:
> > /usr/bin/kmk_sed: file /builddir/build/BUILD/VirtualBox-4.1.8_OSE/src/VBox/Runtime/common/err/errmsg.sed line 31: Unmatched [ or [^
> > kmk: *** [/builddir/build/BUILD/VirtualBox-4.1.8_OSE/obj/obj/Runtime/errmsgdata.h] Error 1
> > kmk: *** Deleting file `/builddir/build/BUILD/VirtualBox-4.1.8_OSE/obj/obj/Runtime/errmsgdata.h'
> > kmk: *** Waiting for unfinished jobs....
> > 
> > build virtualbox with same kBuild but that was build with gcc 4.6 I
> > don't have this problem using kBuild-0.1.98-1.r1.fc17 works, using
> > kBuild-0.1.98-2.r1.fc17 I got this error, with kmk_sed. 
> > Any clue is appreciated 
> 
> kmk_sed is most probably using some undefined C behavior which only
> fortunately worked with gcc-4.6.  

and others gcc < 4.6 

> You should try compiling kmk_sed first with
> -O0 and then checking whether the specific function having this problem there
> is really valid ISO C.

don't understand whats help compile without optimization , which btw my
tests said that also doesn't work kbuild with -O0.

I checked the other email tip about kmk_sed, and conclusion kbuild
bundle a sed based on 4.1.5 but very modified. 

> As an illustration gcore also broke with gcc-4.7 but it was a bug of gcore:
> 	http://sourceware.org/ml/binutils/2011-12/msg00298.html

"as the code violates ISO C99 6.2.4 item 5 by using local variable
outside of 
its block, GCC optimizes out the second memcpy, keeping there only that
memset."

well kmk_sed code not have necessary to be ISO C99, which could be a tip
try compile kbuild without change behavior of gcc < 4.7 

or try to find what is not compatible , with some cflgs ... 

The solution was patch sed file to not use or remove  "GNU/POSIX
extensions to regular expressions" ...

UPDATE :
sed seems that stop work at all , nothing is replaced ! 

> Regards,
> Jan

-- 
Sérgio M. B.




More information about the devel mailing list