ArcticaProject / nx-libs

nx-libs
Other
120 stars 39 forks source link

Linux build fails on i386 but fine on x86_64 with latest code #993

Closed realsimix closed 3 years ago

realsimix commented 3 years ago

Hi,

Somehow the latest changes since the 3.5.99.25 release have broken builds for me on i386 (while x86_64 is fine):

CC Window.c Window.c: In function ‘nxagentCreateWindow’: Window.c:398: warning: format ‘%x’ expects type ‘unsigned int’, but argument 4 has type ‘Window’ Window.c:398: warning: format ‘%x’ expects type ‘unsigned int’, but argument 5 has type ‘XID’ Window.c: In function ‘nxagentWindowExposures’: Window.c:2203: warning: declaration of ‘index’ shadows a global declaration /usr/include/string.h:304: warning: shadowed declaration is here Window.c: In function ‘nxagentReconnectWindow’: Window.c:3017: warning: format ‘%x’ expects type ‘unsigned int’, but argument 4 has type ‘Window’ Window.c:3017: warning: format ‘%x’ expects type ‘unsigned int’, but argument 5 has type ‘XID’ Window.c:3130: error: ‘hints’ undeclared (first use in this function) Window.c:3130: error: (Each undeclared identifier is reported only once Window.c:3130: error: for each function it appears in.) Window.c: At top level: Window.c:3145: error: expected identifier or ‘(’ before ‘if’ Window.c:3161: error: expected identifier or ‘(’ before ‘if’ Window.c:3165: error: expected identifier or ‘(’ before ‘}’ token Window.c: In function ‘nxagentFlushConfigureWindow’: Window.c:3443: warning: declaration of ‘index’ shadows a global declaration /usr/include/string.h:304: warning: shadowed declaration is here Window.c: In function ‘nxagentDeleteConfiguredWindow’: Window.c:3614: warning: declaration of ‘index’ shadows a global declaration /usr/include/string.h:304: warning: shadowed declaration is here Window.c: In function ‘nxagentDeleteStaticResizedWindow’: Window.c:3693: warning: declaration of ‘index’ shadows a global declaration /usr/include/string.h:304: warning: shadowed declaration is here Window.c: In function ‘nxagentFindStaticResizedWindow’: Window.c:3750: warning: declaration of ‘index’ shadows a global declaration /usr/include/string.h:304: warning: shadowed declaration is here failed command: gcc -m32 -c -g -O3 -std=c99 -Wall -DISABLE_Wpedantic -Wpointer-arith -Wshadow -Wundef -I. -I../../../../extras/Mesa/include -I../../../../exports/include/X11 -I../../mi -I../../include -I../../os -I../../miext/cw -I../../GL/glx -I../../GL/include -I../../../../lib/GL/include -I../../Xext -I../../../../lib/include/X11 -I../../../../include/extensions -I../../../../exports/include/nx-X11 -I../../fb -I../../mfb -I../../render -I/usr/include/libxml2 -I/usr/include/pixman-1 -I../../../.. -I../../../../exports/include -Dlinux -Di386 -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_DEFAULT_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DSHAPE -DXINPUT -DXKB -DXCSECURITY -DXF86BIGFONT -DDPMSExtension -DRENDER -DRANDR -DPANORAMIX -DXFIXES -DDAMAGE -DCOMPOSITE -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXvExtension -DXFree86Server -DXvMCExtension -DBUILDDEBUG -DXResExtension -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DXORG_VERSION_CURRENT=(((6) 10000000) + ((9) 100000) + ((0) 1000) + 0) -DNDEBUG -DHAVE_SETITIMER=1 -DLEGACY_XFONT1 -DFUNCPROTO=15 -DNARROWPROTO -DLEGACY_XEXT_PROTO -g -DDDXOSINIT -DSERVER_LOCK -DDDXOSFATALERROR -DDDXOSVERRORF -DCLIENTIDS -DDBE -DXTEST -DXSYNC -DXCMISC -DXRECORD -DMITSHM -DBIGREQS -DDPMSExtension -DSCREENSAVER -DXV -DXVMC -DGLXEXT -DGLX_USE_MESA -DRES -DNX_VERSION_CURRENT=(((3) 10000000) + ((5) 100000) + ((99) 1000) + 25) -DNX_VERSION_CURRENT_STRING="3.5.99.25" -UXF86VIDMODE -UXFreeXDGA -UXF86MISC -UXF86DRI -DNXAGENT_SERVER -DNXAGENT_RENDER_CLEANUP -DNXAGENT_SHAPE2 -DNXAGENT_FIXKEYS -DNXAGENT_CLIPBOARD -DNXAGENT_WAKEUP=1000 -DNXAGENT_ONSTART -DNXAGENT_ARTSD -UNX_DEBUG_INPUT -DRANDR_10_INTERFACE=1 -DRANDR_12_INTERFACE=1 -DRANDR_13_INTERFACE=1 -DRANDR_14_INTERFACE=1 -DRANDR_15_INTERFACE=1 -DPANORAMIX -UDEBUG_TREE -DSYSTEMFONTDIR="/usr/share/fonts/X11" Window.c make[7]: *** [Window.o] Error 1

As said, version 3.5.99.25 builds fine on i386 and x86_64. Latest code breaks on i386.

Any ideas are much appreciated.

Regards, Simon

realsimix commented 3 years ago

Looks like this is the culprit:

https://github.com/ArcticaProject/nx-libs/commit/4d95e29b87217ac12de97bf4031603c36055b6ac

Any ideas what is wrong with it?

realsimix commented 3 years ago

Without knowing exactly what I do I came up with this patch and it builds fine. Don't know if it makes sense :) nx-libs-3.6.x-20210119-32bit.patch.txt

uli42 commented 3 years ago

Thx for looking at this. As I am sick currently I will look at this the next days. We must ensure this makes it into 3.5.99.26.

Uli

Simon Matter notifications@github.com schrieb am Mi., 27. Jan. 2021, 17:42:

Without knowing exactly what I do I came up with this patch and it builds fine. Don't know if it makes sense :) nx-libs-3.6.x-20210119-32bit.patch.txt https://github.com/ArcticaProject/nx-libs/files/5881672/nx-libs-3.6.x-20210119-32bit.patch.txt

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ArcticaProject/nx-libs/issues/993#issuecomment-768414280, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQHBZA2LYVCGWPPAGSY5ETS4A66HANCNFSM4WVEGAHA .

realsimix commented 3 years ago

Hi Uli,

I hope you're feeling better again? About the patch above, did you already test it and run it? Because I'm having issues with my recent builds and I've just realized that something must be wrong but I have yet to find out if it's above patch. I can run nxagent in standalone mode fine but not in desktop mode together with nxproxy. Strange but maybe my patch broke things :)

Simon

uli42 commented 3 years ago

Yes, have a look at the open pull requests, it's included in the one called windowfixes

I hope for (or rather expect) a release before end of the week to make into the Debian freeze with that patch and also the fullscreen fix included.

Uli

Simon Matter notifications@github.com schrieb am Di., 2. Feb. 2021, 18:44:

Hi Uli,

I hope you're feeling better again? About the patch above, did you already test it and run it? Because I'm having issues with my recent builds and I've just realized that something must be wrong but I have yet to find out if it's above patch. I can run nxagent in standalone mode fine but not in desktop mode together with nxproxy. Strange but maybe my patch broke things :)

Simon

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ArcticaProject/nx-libs/issues/993#issuecomment-771831968, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQHBZAYOWV7OH4BVIBPPFDS5A2ZFANCNFSM4WVEGAHA .

realsimix commented 3 years ago

I've slightly modified the patch and hope this one looks more correct. Still, I'm not sure I fully understand the logic behind the code :(

nx-libs-3.6.x-20210119-32bit.patch.v2.txt

uli42 commented 3 years ago

As this is already included in the PR there's no need to change it again.

What this is doing: nxagent can be compiled in 32bit or in 64bit. In 64bit the datatypes have other sizes. The datatypes used for communication with the real X server have a defined size and depending on the way nxagent is compiled the internal data structures must be converted into the ones Xlib understands.

Uli

On Wed, Feb 3, 2021 at 1:45 PM Simon Matter notifications@github.com wrote:

I've slightly modified the patch and hope this one looks more correct. Still, I'm not sure I fully understand the logic behind the code :(

nx-libs-3.6.x-20210119-32bit.patch.v2.txt https://github.com/ArcticaProject/nx-libs/files/5918474/nx-libs-3.6.x-20210119-32bit.patch.v2.txt

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ArcticaProject/nx-libs/issues/993#issuecomment-772481001, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQHBZEM7MUYL7U6T3BGYQLS5FAOLANCNFSM4WVEGAHA .

realsimix commented 3 years ago

Hi Uli,

I've now tested with the latest commits but I still feel my former patch was not correct. May I still ask you to have a look at the patch below and decide if it should be applied? Thanks.

Simon

nx-libs-3.6.x-20210203-32bit.patch.txt

uli42 commented 3 years ago

I don't think it is correct as you are assigning props even if the alloc fails. So data64 could be anything on 64bit. The 32bit path looks ok.

There's no need to apply your patch to current HEAD as that code should be (TM ;-) correct.

Uli

On Thu, Feb 4, 2021 at 2:54 PM Simon Matter notifications@github.com wrote:

Hi Uli,

I've now tested with the latest commits but I still feel my former patch was not correct. May I still ask you to have a look at the patch below and decide if it should be applied? Thanks.

Simon

nx-libs-3.6.x-20210203-32bit.patch.txt https://github.com/ArcticaProject/nx-libs/files/5926144/nx-libs-3.6.x-20210203-32bit.patch.txt

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ArcticaProject/nx-libs/issues/993#issuecomment-773318411, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQHBZAONZKCOPWH6WDQKN3S5KRKTANCNFSM4WVEGAHA .

realsimix commented 3 years ago

Thanks!