All of lore.kernel.org
 help / color / mirror / Atom feed
* GRUB 2.00 build and flex-2.5.37
@ 2012-08-05 22:20 Bruce Dubbs
  2013-01-02 10:22 ` Colin Watson
  0 siblings, 1 reply; 3+ messages in thread
From: Bruce Dubbs @ 2012-08-05 22:20 UTC (permalink / raw)
  To: The development of GNU GRUB

The latest flex makes the GRUB-2.00 build fail.  I can work around the 
issues with --disable-werror, but grub-core/script/yylex.l causes two 
warnings that do not work with -Werror.

./grub-core/script/yylex.l: At top level:
grub_script.yy.c:2351:13: error: 'yy_fatal_error' defined but not used

This can be fixed by removing  #define YY_FATAL_ERROR(msg) in yylex.l.

grub_script.yy.c: In function 'yy_scan_bytes':
grub_script.yy.c:2296:17: error: comparison between signed and unsigned 
integer expressions [-Werror=sign-compare]

This one is a little more difficult because it is generated by flex.  I 
don't know how to fix this except with a sed after grub_script.yy.c is 
generated by flex.

The gcc version -s 4.7.1.

   -- Bruce


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: GRUB 2.00 build and flex-2.5.37
  2012-08-05 22:20 GRUB 2.00 build and flex-2.5.37 Bruce Dubbs
@ 2013-01-02 10:22 ` Colin Watson
  2013-01-03 17:18   ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 1 reply; 3+ messages in thread
From: Colin Watson @ 2013-01-02 10:22 UTC (permalink / raw)
  To: The development of GNU GRUB

On Sun, Aug 05, 2012 at 05:20:46PM -0500, Bruce Dubbs wrote:
> The latest flex makes the GRUB-2.00 build fail.  I can work around
> the issues with --disable-werror, but grub-core/script/yylex.l
> causes two warnings that do not work with -Werror.
> 
> ./grub-core/script/yylex.l: At top level:
> grub_script.yy.c:2351:13: error: 'yy_fatal_error' defined but not used
> 
> This can be fixed by removing  #define YY_FATAL_ERROR(msg) in yylex.l.

That would be incorrect; the default implementation of yy_fatal_error
uses fprintf, which is not valid in parts of GRUB that need to run
freestanding.  More correct would probably be to insert an artificial
reference to yy_fatal_error, since flex offers no way to suppress its
definition.

> grub_script.yy.c: In function 'yy_scan_bytes':
> grub_script.yy.c:2296:17: error: comparison between signed and
> unsigned integer expressions [-Werror=sign-compare]
> 
> This one is a little more difficult because it is generated by flex.
> I don't know how to fix this except with a sed after
> grub_script.yy.c is generated by flex.

I tried to reproduce this and the other warning with flex 2.5.37 and GCC
4.7.2 and couldn't, so I'm reluctant to make a change that I can't test.
Can you still reproduce this?  If so, could you attach your generated
grub_script.yy.c?

-- 
Colin Watson                                       [cjwatson@ubuntu.com]


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: GRUB 2.00 build and flex-2.5.37
  2013-01-02 10:22 ` Colin Watson
@ 2013-01-03 17:18   ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 0 replies; 3+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2013-01-03 17:18 UTC (permalink / raw)
  To: The development of GNU GRUB

[-- Attachment #1: Type: text/plain, Size: 1688 bytes --]

On 02.01.2013 11:22, Colin Watson wrote:

> On Sun, Aug 05, 2012 at 05:20:46PM -0500, Bruce Dubbs wrote:
>> The latest flex makes the GRUB-2.00 build fail.  I can work around
>> the issues with --disable-werror, but grub-core/script/yylex.l
>> causes two warnings that do not work with -Werror.
>>
>> ./grub-core/script/yylex.l: At top level:
>> grub_script.yy.c:2351:13: error: 'yy_fatal_error' defined but not used
>>
>> This can be fixed by removing  #define YY_FATAL_ERROR(msg) in yylex.l.
> 
> That would be incorrect; the default implementation of yy_fatal_error
> uses fprintf, which is not valid in parts of GRUB that need to run
> freestanding.  More correct would probably be to insert an artificial
> reference to yy_fatal_error, since flex offers no way to suppress its
> definition.
> 

It's ok to make such warnings non-breaking by corresponding #pragma. In
fact we already have:
#pragma GCC diagnostic ignored "-Wunused-function"
So the report is obviously for some older version.

>> grub_script.yy.c: In function 'yy_scan_bytes':
>> grub_script.yy.c:2296:17: error: comparison between signed and
>> unsigned integer expressions [-Werror=sign-compare]
>>
>> This one is a little more difficult because it is generated by flex.
>> I don't know how to fix this except with a sed after
>> grub_script.yy.c is generated by flex.
> 
> I tried to reproduce this and the other warning with flex 2.5.37 and GCC
> 4.7.2 and couldn't, so I'm reluctant to make a change that I can't test.
> Can you still reproduce this?  If so, could you attach your generated
> grub_script.yy.c?
> 



-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 294 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-01-03 17:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-05 22:20 GRUB 2.00 build and flex-2.5.37 Bruce Dubbs
2013-01-02 10:22 ` Colin Watson
2013-01-03 17:18   ` Vladimir 'φ-coder/phcoder' Serbinenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.