ec- / Quake3e

Improved Quake III Arena engine
GNU General Public License v2.0
1.19k stars 154 forks source link

Build: building with Cygwin on Win 8.1 x64 fails (cURL). #256

Closed ghost closed 10 months ago

ghost commented 10 months ago

Since updating cURL the compiling process on Windows 8.1 64-bit using Cygwin will fail with the following error(s):

CC code/qcommon/vm_x86.c CC code/client/cl_curl.c CC code/win32/win_main.c CC code/win32/win_shared.c CC code/win32/win_syscon.c CC code/sdl/sdl_glimp.c CC code/sdl/sdl_gamma.c CC code/sdl/sdl_input.c CC code/sdl/sdl_snd.c LD build/release-mingw32-x86_64/quake3e.x64.exe code/libcurl/windows/mingw/lib64/libcurl.a(libcurl_la-mprintf.o):mprintf.c:(.text+0x1749): undefined reference to imp___acrt_iob_func' code/libcurl/windows/mingw/lib64/libcurl.a(libcurl_la-mprintf.o):mprintf.c:(.text+0x17e3): undefined reference to imp_acrt_iob_func' code/libcurl/windows/mingw/lib64/libcurl.a(libcurl_la-setopt.o):setopt.c:(.text+0xedd): undefined reference to imp_acrt_iob_func' code/libcurl/windows/mingw/lib64/libcurl.a(libcurl_la-url.o):url.c:(.text+0x509): undefined reference to imp_acrt_iob_func' code/libcurl/windows/mingw/lib64/libcurl.a(libcurl_la-formdata.o):formdata.c:(.text+0x25a): undefined reference to imp___acrt_iob_func' collect2: error: ld returned 1 exit status Makefile:1224: die Regel für Ziel „build/release-mingw32-x86_64/quake3e.x64.exe“ scheiterte

Currently I don't know how to fix this without breaking MSVC builds because I only use Cygwin, not MSVC.

@ec- Unrelated sidenote: without owning a cell phone the 2FA is a real s***, working with Github is annoying. Anyways, if I will no longer respond here, than this means I lost access, and it does NOT mean I lost interest in Q3e. Q3e is still the best. Probably a good time to say THANK YOU! Sorry for abusing the issue tracker.

ensiform commented 10 months ago

You would need to compile curl 8.4 with cygwin as well I expect?

ghost commented 10 months ago

Thanks for your response @ensiform! What do you mean by compiling curl 8.4 as well? Do you mean I have to create/compile 'internal libs' first and seperatly? This would be strange imo, the corresponding libcurl.a is already there (for win32/win64), so Q3e can link against. Well, it seems I do not understand things right, especially because this wasn't a problem before the recent changes to cURL, the MAKEFILE didn't change.

ensiform commented 10 months ago

The bundled curl lib updated, and probably links to a different runtime that cygwin doesn't like.

ghost commented 10 months ago

I'll try a different cURL from the official website. You recently get rid of the cURL files in ETe, right? Probably something I should consider :)

ghost commented 10 months ago

Okay, q3e compiles again, I used the devel/libcurl-devel-8.4.0-1 from https://curl.se/download.html Thank you @ensiform!

ghost commented 10 months ago

If it is okay I'll leave this ticket open for a while, because I'm pretty sure newcomers using Cygwin will likely run into the same problem (assuming others still using Cygwin too). Or should we represent this issue at the build instructions? I wonder if this issue also occurs with MinGW?

ensiform commented 10 months ago

Well I think mingw depends on modern ucrt nowadays and maybe cygwin does not?

You may need to get discord or something if you wish to continue being active on the web for these projects if you have no devices capable of being 2FA. Is there no email 2fa option? Also, you may setup a passkey instead of password that also works for 2FA apparently.

ghost commented 10 months ago

Is there no email 2fa option?

Nope, without cell phone you have to use shitty Authenticator apps, like WinAuth or some similar crap.

Also, you may setup a passkey instead of password that also works for 2FA apparently.

Afaik, you will end up using a cell phone or (i)cloud for a passkey I think?

The next step would be to send them my physical eyeball for athentification I think...

ensiform commented 10 months ago

Do you really not have a cellphone or just do not wish to use it for such things?

ghost commented 10 months ago

Believe it or not, I even never had a cell phone my whole life, and I don't have one now. This is due my age, I think. I remember the days I (and many of my generation) didn't even have a own phone at all, but this is a bit OT I think. Well, as far as compiling is concerned Q3e compiles with the updated bundled libs. The built exe won't start because the curl lib is missing Q3e says, this happens altough I updated the curl lib inside the Q3e dir. Well, probably the libs from the cURL site mismatch or something, I'll investigate this a bit further... EDIT: the official libs from cURL website seems to be correct, Q3e now say cygbrotlidec-1.dll is missing.

ensiform commented 10 months ago

Believe it or not, I even never had a cell phone my whole life, and I don't have one now. This is due my age, I think. I remember the days I (and many of my generation) didn't even have a own phone at all, but this is a bit OT I think. Well, as far as compiling is concerned Q3e compiles with the updated bundled libs. The built exe won't start because the curl lib is missing Q3e says, this happens altough I updated the curl lib inside the Q3e dir. Well, probably the libs from the cURL site mismatch or something, I'll investigate this a bit further... EDIT: the official libs from cURL website seems to be correct, Q3e now say cygbrotlidec-1.dll is missing.

Well then you're missing that particular cygwin dll that is linked against in curl lib you used.

Yeah it's kinda OT but I mean you have been unwilling to use other platforms for communication so. 🤷‍♂️

ghost commented 10 months ago

Well, actually I just wanted to inform ec- that I eventually can't contribute to Q3e in the future, I didn't really want to complain, besides of that, you are right. Closing this issue now, because Q3e compiles. Thanks for the help, ensiform!