Skip to contentSkip to conversation

what feature fixed the gcc-5 preprocessor build error from a few months back?

DISCUSSION Robert P. J. Day 2 participants 3 messages Dec 7, 2015

lore
Share & tools
lore
#0 lore raw

once upon a time, i asked a question about the origin of this OE
build error using gcc-5 to build ncurses-native:

Quoted 1 line

In file included from

/home/rpjday/oe/builds/oe/qemux86/tmp-glibc/work/x86_64-linux/ncurses-native/5.9-r15.1/ncurses-5.9/ncurses/curses.priv.h:283:0,

Quoted 3 lines
                 from ../ncurses/lib_gen.c:19:

_20141.c:835:15: error: expected ')' before 'int' ../include/curses.h:1594:56: note: in definition of macro

'mouse_trafo'

Quoted 1 line

#define mouse_trafo(y,x,to_screen)

wmouse_trafo(stdscr,y,x,to_screen)

it didn't take long to be pointed to an explanation on the fedora
mailing list:

http://lists.openembedded.org/pipermail/openembedded-core/2015-February/101820.html

" these packages failed to build because of the changes in the preprocessor;
gcc started to generate line directives to better detect whether a macro tokens come from a system header - see http://gcc.gnu.org/PR60723
The fix is to use the -P option if the code isn't prepared to deal with such directives.

so i just added to my local.conf:

CPPFLAGS_append_pn-ncurses-native = " -P"

that issue was apparently fixed and i haven't needed to do that for
a while. however, i'm now using someone's custom version of OE-core and that very error is back, so what was it that was tweaked to deal with it? thanks.

rday

Signature · 7 lines
========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================
#1 lore raw

Hello Robert,

Quoted 24 lines · Robert P. J. Day

once upon a time, i asked a question about the origin of this OE
build error using gcc-5 to build ncurses-native:

Quoted 1 line

In file included from

/home/rpjday/oe/builds/oe/qemux86/tmp-glibc/work/x86_64-linux/ncurses-native/5.9-r15.1/ncurses-5.9/ncurses/curses.priv.h:283:0,

Quoted 3 lines
                 from ../ncurses/lib_gen.c:19:

_20141.c:835:15: error: expected ')' before 'int' ../include/curses.h:1594:56: note: in definition of macro

'mouse_trafo'

Quoted 1 line

#define mouse_trafo(y,x,to_screen)

wmouse_trafo(stdscr,y,x,to_screen)

it didn't take long to be pointed to an explanation on the fedora
mailing list:

http://lists.openembedded.org/pipermail/openembedded-core/2015-February/101820.html

" these packages failed to build because of the changes in the preprocessor;
gcc started to generate line directives to better detect whether a macro tokens come from a system header - see http://gcc.gnu.org/PR60723
The fix is to use the -P option if the code isn't prepared to deal with such directives.

Quoted 8 lines

so i just added to my local.conf:

CPPFLAGS_append_pn-ncurses-native = " -P"

that issue was apparently fixed and i haven't needed to do that for
a while. however, i'm now using someone's custom version of OE-core and that very error is back, so what was it that was tweaked to deal with it? thanks.

see this commit in fido:

commit 3a5435b371c84ec28b6936b8c8fa6541a592d061

Author: Martin Stolpe <[email protected]>
Date:   Wed Jun 10 16:28:26 2015 +0200

ncurses: fix native builds when host has gcc5

GCC"s preprocessor starts to add newlines which are not handled properly by ncurses build system startin from version 5.0.

See also: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7870

In master it's probably been solved by updating ncurses.

Regards,
Andreas

#2 lore raw
Quoted 48 lines · Andreas Oberritter

Hello Robert,

Quoted 24 lines · Robert P. J. Day

once upon a time, i asked a question about the origin of this OE
build error using gcc-5 to build ncurses-native:

Quoted 1 line

In file included from

/home/rpjday/oe/builds/oe/qemux86/tmp-glibc/work/x86_64-linux/ncurses-native/5.9-r15.1/ncurses-5.9/ncurses/curses.priv.h:283:0,

Quoted 3 lines
                 from ../ncurses/lib_gen.c:19:

_20141.c:835:15: error: expected ')' before 'int' ../include/curses.h:1594:56: note: in definition of macro

'mouse_trafo'

Quoted 1 line

#define mouse_trafo(y,x,to_screen)

wmouse_trafo(stdscr,y,x,to_screen)

it didn't take long to be pointed to an explanation on the fedora
mailing list:

http://lists.openembedded.org/pipermail/openembedded-core/2015-February/101820.html

" these packages failed to build because of the changes in the preprocessor;
gcc started to generate line directives to better detect whether a macro tokens come from a system header - see http://gcc.gnu.org/PR60723
The fix is to use the -P option if the code isn't prepared to deal with such directives.

Quoted 8 lines

so i just added to my local.conf:

CPPFLAGS_append_pn-ncurses-native = " -P"

that issue was apparently fixed and i haven't needed to do that for
a while. however, i'm now using someone's custom version of OE-core and that very error is back, so what was it that was tweaked to deal with it? thanks.

see this commit in fido:

commit 3a5435b371c84ec28b6936b8c8fa6541a592d061

Author: Martin Stolpe <[email protected]>
Date:   Wed Jun 10 16:28:26 2015 +0200

ncurses: fix native builds when host has gcc5

GCC"s preprocessor starts to add newlines which are not handled properly by ncurses build system startin from version 5.0.

Quoted 6 lines

See also: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7870

In master it's probably been solved by updating ncurses.

ah, that's pretty much the hackaround i used once upon a time, and i
can see that that patch is not in the vendor-specific OE-Core layer i was given. so that definitely explains that problem. thanks.

rday

Signature · 7 lines
========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================