Netsurf fails to build because of 64bit-portability-issue

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Netsurf fails to build because of 64bit-portability-issue

sogal
Hi,
I would like to provide a Netsurf up-to-date package to openSUSE Leap.
When building the RPM locally no problem happens but when building it in the OBS
it fails at the very end of the process, when checks are done (whereas packages have
been already successfully created), with the following output :

[ 109s] netsurf-3.7-0.x86_64
[ 109s] ... running 01-check-debuginfo
[ 109s] ... testing for empty debuginfo packages
[ 109s] ... running 02-check-gcc-output
[ 109s] ... testing for serious compiler warnings
[ 109s] (using /usr/lib/build/checks-data/check_gcc_output)
[ 109s] (using /var/tmp/build-root/openSUSE_Leap_42.3-x86_64/.build.log)
[ 109s] E: netsurf 64bit-portability-issue build-x86_64-suse-linux-x86_64-suse-linux-release-binary/nsgenbind-parser.c:1520
[ 109s]
[ 109s] requiem.eveha.fr failed "build netsurf.spec" at Tue Jan 9 10:19:51 UTC 2018.
[ 109s]

Is there a specific GCC flags or macros that I can use to prevent this or is it code related ?

Regards,

--
Sébastien 'sogal' Poher
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Netsurf fails to build because of 64bit-portability-issue

Marcus Meissner
On Mon, Jan 15, 2018 at 08:13:35AM +0100, sogal wrote:

> Hi,
> I would like to provide a Netsurf up-to-date package to openSUSE Leap.
> When building the RPM locally no problem happens but when building it in the OBS
> it fails at the very end of the process, when checks are done (whereas packages have
> been already successfully created), with the following output :
>
> [ 109s] netsurf-3.7-0.x86_64
> [ 109s] ... running 01-check-debuginfo
> [ 109s] ... testing for empty debuginfo packages
> [ 109s] ... running 02-check-gcc-output
> [ 109s] ... testing for serious compiler warnings
> [ 109s] (using /usr/lib/build/checks-data/check_gcc_output)
> [ 109s] (using /var/tmp/build-root/openSUSE_Leap_42.3-x86_64/.build.log)
> [ 109s] E: netsurf 64bit-portability-issue build-x86_64-suse-linux-x86_64-suse-linux-release-binary/nsgenbind-parser.c:1520
> [ 109s]
> [ 109s] requiem.eveha.fr failed "build netsurf.spec" at Tue Jan 9 10:19:51 UTC 2018.
> [ 109s]
>
> Is there a specific GCC flags or macros that I can use to prevent this or is it code related ?

It is code related.

You can fix the code.

There is probably a integer  <-> pointer conversion in this line.

Ciao, Marcus
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Netsurf fails to build because of 64bit-portability-issue

Cristian Rodríguez-2
In reply to this post by sogal


El 15-01-2018 a las 4:13, sogal escribió:

> Hi,
> I would like to provide a Netsurf up-to-date package to openSUSE Leap.
> When building the RPM locally no problem happens but when building it in the OBS
> it fails at the very end of the process, when checks are done (whereas packages have
> been already successfully created), with the following output :
>
> [ 109s] netsurf-3.7-0.x86_64
> [ 109s] ... running 01-check-debuginfo
> [ 109s] ... testing for empty debuginfo packages
> [ 109s] ... running 02-check-gcc-output
> [ 109s] ... testing for serious compiler warnings
> [ 109s] (using /usr/lib/build/checks-data/check_gcc_output)
> [ 109s] (using /var/tmp/build-root/openSUSE_Leap_42.3-x86_64/.build.log)
> [ 109s] E: netsurf 64bit-portability-issue build-x86_64-suse-linux-x86_64-suse-linux-release-binary/nsgenbind-parser.c:1520
> [ 109s]
> [ 109s] requiem.eveha.fr failed "build netsurf.spec" at Tue Jan 9 10:19:51 UTC 2018.
> [ 109s]
>
> Is there a specific GCC flags or macros that I can use to prevent this or is it code related ?

You need to fix the code.. now if you provide an URL to see the complete
build log.. maybe someone can help..
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Netsurf fails to build because of 64bit-portability-issue

sogal
Hi Marcus, Cristian and all,

Le lundi 15 janvier 2018 à 11:26:25, Cristian Rodríguez a écrit :

> El 15-01-2018 a las 4:13, sogal escribió:
> > Hi,
> > I would like to provide a Netsurf up-to-date package to openSUSE Leap.
> > When building the RPM locally no problem happens but when building it in the OBS
> > it fails at the very end of the process, when checks are done (whereas packages have
> > been already successfully created), with the following output :
> >
> > [ 109s] netsurf-3.7-0.x86_64
> > [ 109s] ... running 01-check-debuginfo
> > [ 109s] ... testing for empty debuginfo packages
> > [ 109s] ... running 02-check-gcc-output
> > [ 109s] ... testing for serious compiler warnings
> > [ 109s] (using /usr/lib/build/checks-data/check_gcc_output)
> > [ 109s] (using /var/tmp/build-root/openSUSE_Leap_42.3-x86_64/.build.log)
> > [ 109s] E: netsurf 64bit-portability-issue build-x86_64-suse-linux-x86_64-suse-linux-release-binary/nsgenbind-parser.c:1520
> > [ 109s]
> > [ 109s] requiem.eveha.fr failed "build netsurf.spec" at Tue Jan 9 10:19:51 UTC 2018.
> > [ 109s]
> >
> > Is there a specific GCC flags or macros that I can use to prevent this or is it code related ?
>
> You need to fix the code.. now if you provide an URL to see the complete
> build log.. maybe someone can help..

Indeed, here it is [0]
I don't know of to fix the faulty file (nsgenbind-parser.c [1]), it is created during the build
process. The only related file that I could find in the source tarball is
nsgenbind-parser.y [2]
I guess this file is used to generate the .c file that causes this error. Or
am I wrong ?

[0] https://paste.opensuse.org/17857989
[1] https://paste.opensuse.org/68257692
[2] http://source.netsurf-browser.org/nsgenbind.git/tree/src/nsgenbind-parser.y
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Netsurf fails to build because of 64bit-portability-issue

Michael Matz
Hi,

On Mon, 15 Jan 2018, sogal wrote:

> > You need to fix the code.. now if you provide an URL to see the
> > complete build log.. maybe someone can help..
>
> Indeed, here it is [0]
> I don't know of to fix the faulty file (nsgenbind-parser.c [1]), it is created during the build
> process. The only related file that I could find in the source tarball is
> nsgenbind-parser.y [2]
> I guess this file is used to generate the .c file that causes this error. Or
> am I wrong ?

No, that's correct.  The .y file has this somewhere at the top:

-----------------
%code requires {

#define YYLTYPE YYLTYPE
typedef struct YYLTYPE {
        struct YYLTYPE *next;
....
-----------------

Replace the #define above such that in the end it looks like:

-----------------
%code requires {

#define NSGENBIND_LTYPE NSGENBIND_LTYPE
typedef struct YYLTYPE {
        struct YYLTYPE *next;
-----------------

The problem is that the .y file (at least the %code requires section) is
written with the default prefixes of yacc symbols in mind (the 'YY'
prefix), but the Makefile calls bison with --define=api.prefix=nsgenbind_.  
That renames all symbols to look line NSGENBIND_foo, including LTYPE, and
the #ifdef machinery becomes confused if both are used.


Ciao,
Michael.
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Netsurf fails to build because of 64bit-portability-issue

sogal
Hi,

Le lundi 15 janvier 2018 à 05:56:38, Michael Matz a écrit :

> Hi,
>
> On Mon, 15 Jan 2018, sogal wrote:
>
> > > You need to fix the code.. now if you provide an URL to see the
> > > complete build log.. maybe someone can help..
> >
> > Indeed, here it is [0]
> > I don't know of to fix the faulty file (nsgenbind-parser.c [1]), it is created during the build
> > process. The only related file that I could find in the source tarball is
> > nsgenbind-parser.y [2]
> > I guess this file is used to generate the .c file that causes this error. Or
> > am I wrong ?
>
> No, that's correct.  The .y file has this somewhere at the top:
>
> -----------------
> %code requires {
>
> #define YYLTYPE YYLTYPE
> typedef struct YYLTYPE {
>         struct YYLTYPE *next;
> ....
> -----------------
>
> Replace the #define above such that in the end it looks like:
>
> -----------------
> %code requires {
>
> #define NSGENBIND_LTYPE NSGENBIND_LTYPE
> typedef struct YYLTYPE {
>         struct YYLTYPE *next;
> -----------------
>
> The problem is that the .y file (at least the %code requires section) is
> written with the default prefixes of yacc symbols in mind (the 'YY'
> prefix), but the Makefile calls bison with --define=api.prefix=nsgenbind_.  
> That renames all symbols to look line NSGENBIND_foo, including LTYPE, and
> the #ifdef machinery becomes confused if both are used.
 
Thanks a lot Michael, it worked perfectly !
Thank you for the detailled explanations as well.

Cheers,

--
Sébastien 'sogal' Poher
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]