Time |
Nick |
Message |
00:24 |
|
nephele joined #minetest-dev |
00:56 |
|
Exe_Virus joined #minetest-dev |
01:12 |
|
calcul0n joined #minetest-dev |
01:17 |
|
ssieb joined #minetest-dev |
01:55 |
Exe_Virus |
rubenwardy are you around to help? I am trying to get Cross Compilation working for Linux->Win64 |
01:56 |
Exe_Virus |
I'm having issues with mutex and threads not being detected as part of std. I suspect it is an issue with the standard headers not being loaded correctly but I'm unsure |
02:06 |
|
nephele joined #minetest-dev |
03:03 |
|
nephele joined #minetest-dev |
03:13 |
|
fluxflux_ joined #minetest-dev |
04:12 |
Exe_Virus |
sfan5 |
04:12 |
Exe_Virus |
are you here? |
04:13 |
Exe_Virus |
I need help with cross Compiling Minetest on Lubuntu to Win64 |
04:36 |
Exe_Virus |
I'm having issues with compiling minetest source using Mingw-64. It looks like you are using a custom version on your automated builds from gitlab that you host on your site. Did you run into similar problems? |
04:38 |
|
Thomas-S joined #minetest-dev |
04:38 |
|
Thomas-S joined #minetest-dev |
06:53 |
|
pgimeno_ joined #minetest-dev |
07:37 |
|
pyrollo joined #minetest-dev |
07:47 |
|
ensonic joined #minetest-dev |
08:37 |
|
ShadowNinja joined #minetest-dev |
09:14 |
|
erlehmann joined #minetest-dev |
09:18 |
|
erlehmann joined #minetest-dev |
10:40 |
|
df458 joined #minetest-dev |
10:46 |
|
erlehmann_ joined #minetest-dev |
10:55 |
|
erlehmann joined #minetest-dev |
11:12 |
|
Fixer joined #minetest-dev |
11:41 |
|
proller joined #minetest-dev |
11:58 |
ANAND |
Trivial PR: #9224 |
11:58 |
ShadowBot |
https://github.com/minetest/minetest/issues/9224 -- /privs: Delimit output list of privs with commas by ClobberXD |
12:05 |
|
proller joined #minetest-dev |
12:14 |
sfan5 |
~tell Exe_Virus installing and using the g++-mingw-w64 package on Ubuntu should usually be fine, if not you can also download and use the same custom mingw version I do |
12:14 |
ShadowBot |
sfan5: O.K. |
12:35 |
|
Wuzzy joined #minetest-dev |
12:43 |
|
HDMI_STECKDOSE joined #minetest-dev |
12:45 |
|
tomraceror joined #minetest-dev |
12:55 |
|
proller joined #minetest-dev |
13:03 |
|
tomraceror joined #minetest-dev |
13:05 |
|
Beton joined #minetest-dev |
13:06 |
|
HDMI_STECKDOSE joined #minetest-dev |
13:10 |
|
pmp-p joined #minetest-dev |
13:21 |
|
pmp-p joined #minetest-dev |
13:54 |
|
Darcidride joined #minetest-dev |
14:00 |
|
CrazyDave joined #minetest-dev |
14:03 |
|
tomraceror joined #minetest-dev |
14:03 |
|
proller joined #minetest-dev |
14:06 |
|
Exe_Virus joined #minetest-dev |
14:08 |
Exe_Virus |
Thank you sfan5, I looked further into it and the default mingw-w64 package is built for non-posix threads, I.e. Win32 threads are there and std:thread is turned off. I'll be trying out a posix compiled version today, so let's hope that solves the issue |
14:09 |
sfan5 |
why does ubuntu do that? ? |
14:19 |
Exe_Virus |
Probably because most programmers use win32 threads if they ar writing windows programs |
14:19 |
Exe_Virus |
Not that I'm complaining :) I like posix |
14:32 |
|
tomraceror joined #minetest-dev |
14:41 |
pyrollo |
<Exe_Virus> I confirm, choosing posix compiler (i686-w64-mingw32-g++-posix and i686-w64-mingw32-gcc-posix) works well. |
14:45 |
pyrollo |
I'm having a look at guiFormSpecMenu.cpp and wondering if code could be dispatched in different files. |
14:45 |
pyrollo |
This file is source of conflicts. |
14:45 |
pyrollo |
Maybe having a sort of elements registry (map?), and having all parse functions in cpp files related to their element |
14:45 |
Exe_Virus |
conflicts like what? |
14:46 |
pyrollo |
All PRs dealing with gui modify this file. |
14:46 |
pyrollo |
And there are many PRs dealing with gui |
14:47 |
Exe_Virus |
Okay, that makes sense. Sorry I'm not that informed yet about this engine (but learning really fast, haha) |
14:51 |
pyrollo |
There is a couple of huge cpp files in code that would deserve to be split. |
14:52 |
Exe_Virus |
That much is true. Perhaps submit a PR with a broken up version of guiformspecmenu.cpp? |
14:52 |
pyrollo |
Yes, I'd like to discuss of it before, this is a big work |
15:09 |
|
Foz joined #minetest-dev |
15:11 |
Exe_Virus |
Pyrollo, submit an Issue in the github and more core devs can discuss about the subject then |
15:12 |
pyrollo |
Good idea |
15:17 |
Exe_Virus |
Hey I finally got compilation for Windows on Linux to run. It's a simple configuration setting you change, so that mingw uses posix rather than win32. One line of code, dang it. |
15:18 |
Exe_Virus |
I should submit a PR for the readme.txt so others can compile without visual studio successfully |
15:20 |
pyrollo |
I guess it depends on your distro. But yes, it would be better to have an advice about compiling with posix enabled |
15:21 |
Exe_Virus |
Ubuntu 16.04.... So yeah I think we should have a quick reminder about it, considering it's one of the most populat |
15:22 |
pyrollo |
Before a recent PR on buildbot, I was not able to use it on Ubuntu |
15:23 |
pyrollo |
(debian is using i586-mingw32msvc* and ubuntu has i686-w64-mingw32* stuff) |
15:23 |
Exe_Virus |
Ah yeah, I was wondering about that |
15:40 |
Exe_Virus |
Hey, so I'm now compiling minetest and realizing that compile time is a real pain in the butt. Why does it want to rebuild every object, rather than just the ones we make changes to> |
15:44 |
|
nephele joined #minetest-dev |
15:44 |
pyrollo |
Are you using the buildbot ? |
15:44 |
Exe_Virus |
yes |
15:44 |
pyrollo |
You don't need to |
15:45 |
Exe_Virus |
? what should I use instead? |
15:45 |
pyrollo |
I mean it fetches sources from git and does cmake and make |
15:45 |
Exe_Virus |
right, so can I just do "make" once it's been run once? |
15:45 |
pyrollo |
Once you have done it you cat just go into _build and issue a make -j 5 |
15:45 |
pyrollo |
yup |
15:45 |
Exe_Virus |
what about rebuilding? |
15:45 |
Exe_Virus |
i.e. will it try to recompile everything by default? |
15:46 |
pyrollo |
no, if you use make |
15:46 |
Exe_Virus |
sweet. So after this first compile, I'm golden. Thank you |
15:46 |
pyrollo |
The thing with the buildbot is that it does everything from scratch to package |
15:46 |
pyrollo |
You're welcome |
15:46 |
Exe_Virus |
Maybe I should put a tutorial in Minetest wiki |
15:46 |
Exe_Virus |
For noobs like me |
15:46 |
pyrollo |
Actually you can do all that buildbot does |
15:47 |
Exe_Virus |
I know that |
15:47 |
pyrollo |
manually I mean |
15:47 |
Exe_Virus |
right |
15:47 |
Exe_Virus |
I guess I could make a giant one liner for users to do a windows cross compile.... |
15:47 |
pyrollo |
Good thing with it, it fetches needed dlls, saving hours of searching over the web |
15:48 |
pyrollo |
If you like huge lines :D |
15:48 |
Exe_Virus |
I don't, but copy-paste is super easy for users |
15:48 |
pyrollo |
Oh yes. |
15:48 |
Exe_Virus |
The tutorial would be 1) Get a VM or run Linux |
15:48 |
pyrollo |
I find buildbot is sort of easy with some explanations |
15:48 |
Exe_Virus |
2) Run this one line of code |
15:49 |
Exe_Virus |
2.5)Wait forever |
15:49 |
pyrollo |
:D |
15:49 |
Exe_Virus |
3) Use make from now on |
15:49 |
Exe_Virus |
Minetest Cross Compilation in 3 easy steps :) |
15:49 |
pyrollo |
Actually, I'm working under Linux and have to provide windows executables some tiles |
15:49 |
pyrollo |
times |
15:50 |
pyrollo |
So I dont have step 1 |
15:50 |
Exe_Virus |
very true. I should say 2 Easy steps ;) |
15:50 |
pyrollo |
Yeah ! |
15:50 |
pyrollo |
Then ... wine ... another adventure |
15:51 |
Exe_Virus |
This assumes they are running windows, otherwise why would anyone want to do cross compilation? |
15:51 |
Exe_Virus |
Cross Compile, then use Wine? What's the benefit over running native? |
15:51 |
pyrollo |
If you want to provide a client to someone that is not able to compile it |
15:51 |
pyrollo |
But it's a special use case |
15:52 |
Exe_Virus |
Ah, I see. They just get the .exe and have win preinstalled |
15:52 |
pyrollo |
yes |
15:52 |
Exe_Virus |
[facepalm] |
15:52 |
Exe_Virus |
It wouldn't be a problem if someone updated minetest in the repos..... |
15:53 |
Exe_Virus |
then everyone would just: apt-get install minetest |
15:58 |
Exe_Virus |
I'm running into a second issue with LC_Messages. Something to do with Language translations. Any suggestions besides a clean rebuild? |
16:14 |
pyrollo |
Nothing in mind. What is the exact message ? |
16:14 |
Exe_Virus |
In L_Client.cpp LC_MESSAGE was undefined |
16:14 |
Exe_Virus |
(Don't have exact message because I shutdown and restated the compile |
16:15 |
Exe_Virus |
(in about 6 minutes, I'll be at the same point 46%) |
16:21 |
Exe_Virus |
char *locale = setlocale(LC_MESSAGES, NULL); |
16:22 |
Exe_Virus |
/home/exevirus/minetest-win/minetest/src/script/lua_api/l_client.cpp: In static member function ‘static int ModApiClient::l_get_language (lua_State*)’:/home/exevirus/minetest-win/minetest/src/script/lua_api/l_client.cpp:233:27: error: ‘LC_MESSAGES’ was not declared in this scope char *locale = setlocale(LC_MESSAGES, NULL); |
16:23 |
Exe_Virus |
From this Line of code: https://github.com/minetest/minetest/blob/b5f5e00b29beeda591f74540f74ab7b5dc41a4bb/src/script/lua_api/l_client.cpp#L231 |
16:24 |
pyrollo |
What change have you made ? |
16:24 |
Exe_Virus |
None as of yet |
16:24 |
pyrollo |
Mmm |
16:25 |
pyrollo |
I never had this |
16:25 |
Exe_Virus |
LC_MESSAGES is a preprocessor define right? |
16:25 |
pyrollo |
Looks like |
16:25 |
Exe_Virus |
it's a getttext local environment variable |
16:26 |
pyrollo |
You managed to compile using buidbot and try to use make then ? |
16:26 |
pyrollo |
And got that message ? |
16:26 |
Exe_Virus |
nope. Just straight up the first buildbot compile |
16:26 |
Exe_Virus |
I think my system doesn't have LC_MESSAGES defined |
16:26 |
Exe_Virus |
https://www.gnu.org/software/gettext/manual/html_node/Locale-Environment-Variables.html |
16:32 |
Exe_Virus |
aha |
16:32 |
Exe_Virus |
there is a command for it. locale |
16:33 |
Exe_Virus |
But it shows LC_MESSAGE as set already..... hmmmmmm |
16:33 |
Exe_Virus |
Can you run "locale" on your terminal and report back what LC_MESSAGES is set to pyrollo? |
16:34 |
pyrollo |
Here is the result : |
16:34 |
pyrollo |
https://framabin.org/p/?87c4bec612b3325b#tA6lKUL3tEIyu8VextkgjMLXZL5QoYZ/IJ2JhZ+H/eM= |
16:35 |
pyrollo |
(Actually French settings) |
16:35 |
Exe_Virus |
makes sense |
16:35 |
p_gimeno |
LC_MESSAGES defaults to LANG if defined I think |
16:35 |
Exe_Virus |
okay, well ours look identical, except mine is en_US.utf-8 |
16:36 |
pyrollo |
That's funny, I did not even noticed that my compiled mintest was in french :D |
16:37 |
Exe_Virus |
:D Now to figure out why mine is failing.... I could always just set my language to french :) |
16:37 |
pyrollo |
Ahaha |
16:39 |
|
jrmu left #minetest-dev |
16:39 |
|
jrmu joined #minetest-dev |
16:43 |
|
nephele joined #minetest-dev |
16:48 |
|
HDMI_STECKDOSE joined #minetest-dev |
16:48 |
|
tomraceror joined #minetest-dev |
16:48 |
|
nobody joined #minetest-dev |
16:52 |
|
nephele_ joined #minetest-dev |
16:53 |
Exe_Virus |
Ha! I got a fix working I think. Changed LC_MESSAGES to LC_ALL, so far so good |
16:53 |
Exe_Virus |
Though, that is an oddly specific change. |
16:54 |
|
nephele_ joined #minetest-dev |
17:07 |
Exe_Virus |
And, no Linking fails entirely |
17:16 |
Exe_Virus |
pyrollo I am now having linking issues. I.e. It cannot find std::Thread again |
17:21 |
Exe_Virus |
Oh Dang, found some info on the exact issues I'm seeing: https://github.com/meganz/mingw-std-threads |
17:25 |
pyrollo |
I Dont remember having issues with linking. But you may need some extra Dlls due to mingw |
17:25 |
Exe_Virus |
Oh, you aren't using mingw? |
17:25 |
pyrollo |
libstdc++-6.dll, libgcc_s_sjlj-1.dll and libwinpthread-1.dll |
17:26 |
Exe_Virus |
How would those help with linking stage? |
17:26 |
Exe_Virus |
Are those for runtime? |
17:26 |
pyrollo |
Yes I am but I did not had any link issues as far as I remember (but I have a poor memory) |
17:26 |
pyrollo |
For runtime. They are in your mingw32 dirs |
17:28 |
Exe_Virus |
Right, I get that |
17:28 |
Exe_Virus |
now to figure out the issue with linking |
17:37 |
|
ensonic joined #minetest-dev |
17:39 |
|
Krock joined #minetest-dev |
17:39 |
Exe_Virus |
Aha, My linker is using mthreads anyways.... gr..... |
17:43 |
|
Foz joined #minetest-dev |
17:45 |
Exe_Virus |
So.... to get this straight, Somehow in the cmake file, there is a step that uses mthreads by default and I need to figure out how this happens using the buildbot so others don't have this problem |
18:00 |
Krock |
will merge #8616 and #9224 (both trivial) in 15 minutes |
18:01 |
ShadowBot |
https://github.com/minetest/minetest/issues/8616 -- Fix the player information version_string return value by Lejo1 |
18:01 |
ShadowBot |
https://github.com/minetest/minetest/issues/9224 -- /privs: Delimit output list of privs with commas by ClobberXD |
18:11 |
|
nephele joined #minetest-dev |
18:15 |
Krock |
merging |
18:40 |
|
nepugia joined #minetest-dev |
19:54 |
Exe_Virus |
sfan5 do you run ubuntu or debian for your cross compilation? what version? |
19:54 |
sfan5 |
neither |
19:54 |
Exe_Virus |
linux mint? |
19:54 |
sfan5 |
that's a debian derivative |
19:54 |
Exe_Virus |
let me rephrase: what do you use for your cross compilation? |
19:55 |
Exe_Virus |
I've gone far down the rabbit hole with ubuntu and have finally given up after linker issues deep in make |
19:55 |
sfan5 |
arch linux but that's not relevant to the success you should be having |
19:55 |
Exe_Virus |
It might be |
19:55 |
sfan5 |
the travis builds run on ubuntu 14.04 (?) with the same setup I use on my machine |
19:55 |
Exe_Virus |
the ones in buildbot? |
19:56 |
sfan5 |
yes |
19:56 |
sfan5 |
gitlab builds run on 16.04 and also use the buildbot |
19:56 |
Exe_Virus |
hurm |
19:57 |
Exe_Virus |
I just gave up on using 16.04.... |
19:57 |
Exe_Virus |
too many issues with mingw-w64 not wanting to use pthreads |
19:57 |
Exe_Virus |
is there a special setting you use to ensure pthreads is used for cross compilation? |
19:58 |
sfan5 |
the problem won't be which distro you are using but rather the toolchain (mingw) |
19:58 |
sfan5 |
if I understand the pthread situation correctly then: either your mingw is compiled with pthreads and it will work automatically OR it isn't and you can't just "enable" the support either |
19:58 |
|
paramat joined #minetest-dev |
19:58 |
sfan5 |
have you tried using the same mingw toolchain as the buildbot? |
19:58 |
Exe_Virus |
yes |
19:59 |
Exe_Virus |
though I am uncertain which version |
19:59 |
Exe_Virus |
basically mingw is packaged as both versions for 64 bit. |
20:00 |
sfan5 |
wait that wasn't right |
20:00 |
sfan5 |
have you tried using the same mingw toolchain as travis uses for the buildbot? |
20:00 |
sfan5 |
because that isn't the one you find in ubuntu repositories |
20:00 |
Exe_Virus |
yes. x86_64-mingw32-g++ |
20:00 |
Exe_Virus |
Oh wait |
20:00 |
Exe_Virus |
where does travis get that toolchain? |
20:00 |
Exe_Virus |
Your hosted site? |
20:01 |
sfan5 |
https://github.com/minetest/minetest/blob/master/util/travis/before_install.sh#L19 yes |
20:01 |
Exe_Virus |
Okay that makes more sense. |
20:02 |
Exe_Virus |
I'm sorry to ask.... but could you make a pastebin or type here the order of execution for building with the buildbot settings? |
20:02 |
Exe_Virus |
i.e 1) before_install.sh |
20:02 |
Exe_Virus |
2)buildwin64 |
20:02 |
Exe_Virus |
or something like that. I have lost about 18 hours now on this project...... |
20:03 |
sfan5 |
https://travis-ci.org/minetest/minetest/jobs/627834483 you can see what happens here |
20:03 |
sfan5 |
yes, what you listed is roughly what happens |
20:04 |
Exe_Virus |
I actually tried following the job line by line (did you know there's like 3000+ frickin lines....). But I obviously must have missed something |
20:04 |
sfan5 |
travis sets some environment variables (which the script rely on) so that might've been it |
20:05 |
Exe_Virus |
Like LC_Message? |
20:06 |
sfan5 |
maybe but that's not related to the compiler error you got |
20:06 |
Exe_Virus |
gotcha, okay. (I did get that error, but fixed it later by modifying the code) |
20:08 |
paramat |
!tell erlehmann "6 pyramides centered on 0,0,0. in each pyramid only one axis of gravity works" yes that seems best. only 6 axis-aligned gravity directions, because the world is cube-based. this game does it https://www.youtube.com/watch?v=qPqezDSalB4 |
20:08 |
ShadowBot |
paramat: O.K. |
20:18 |
|
df458 joined #minetest-dev |
20:27 |
|
df458 joined #minetest-dev |
21:02 |
Exe_Virus |
Hey Sfan5 thank you for the help. I understand now that it was purely toolchain issues. Someday, I expect we may want to upgrade past that version of mingw, however. What is the plan for that day? |
21:04 |
sfan5 |
I pull a newer version of mingw, compile and upload it for travis |
21:04 |
Exe_Virus |
any special flags for that compile? |
21:04 |
sfan5 |
nothing out of the ordinary |
21:05 |
sfan5 |
x86_64-w64-mingw32-gcc -v will tell you |
21:05 |
Exe_Virus |
great, I blame Ubuntu Repos :) |
21:05 |
Exe_Virus |
Thank you! |
21:38 |
|
Miner_48er joined #minetest-dev |
21:49 |
|
tomraceror joined #minetest-dev |
22:08 |
|
paramat joined #minetest-dev |
22:41 |
|
ANAND joined #minetest-dev |