I do have commit access now (woot!), but I think it'd be best to defer pushing a patch until after the "next errors" are sorted out.
I'd prefer to keep (independend) commits as small as possible - but it's your decision
Could you post them so we can take a look at them too?
Well, I'm a step further - but still not able to compile a simulator.
In principal with cygwin you have several possibilities to compile the simulator:
1.) cygwin based (64- or 32-bit)
2.) mingw based (64- or 32-bit)
With the cygwin based version you have a more linux based environment for your program and need the cygwin wrapper DLL around it to run it.
The mingw based comes in place when the configure option "Win32 crosscompile" will be choosed and provides a windows native environment for your program and does not need any wrapper DLL.
At the beginning I tried to "just" choose "simulator" without additional option -> cygwin environment, 64-Bit in my case; the leading architecture ist "amd64".
That leads to a lot strange header problems - not inside rockbox, but in cygwin environment.
I solved a few of them by switching off the ccache feature in rockbox ("--no-ccache" parameter) - but some are still present, and I don't have any idea why...
from /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/alarm_menu.c:26:
/usr/include/machine/_endian.h:23:1: error: unknown type name ‘_ELIDABLE_INLINE’
_ELIDABLE_INLINE __uint32_t __ntohl(__uint32_t);
^
_ELIDABLE_INLINE is defined in "/usr/include/_ansi.h" which is included in "/usr/include/machine/_endian.h" - so I've no idea why it does not detect this...
...if I "fix" it by adding the following lines to "_endian.h":
#ifndef _ELIDABLE_INLINE
#define _ELIDABLE_INLINE static __inline__
#endif
that error vanishes - but the next similar comes in place:
from /usr/include/sys/stat.h:9,
from /usr/include/sys/_default_fcntl.h:188,
from /usr/include/sys/fcntl.h:3,
from /usr/include/fcntl.h:12,
from /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/firmware/include/file.h:26,
from /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/firmware/export/scroll_engine.h:30,
from /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/screen_access.h:27,
from /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/gui/viewport.h:29,
from /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/action.h:25,
from /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/alarm_menu.c:26:
/usr/include/sys/reent.h:197:43: error: expected ‘)’ before ‘(’ token
_READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
_EXFNPTR is also defined in "_ansi.h" - so I still don't understand what's going on...
-------------------------------------------------------------------
So I decided to try to build the simulator with mingw...
Nowadays it's possible to use a 64-bit and a 32-bit version of mingw - in cygwin64 you can use both...
In the past only 32-bit versions where available - so that was used in rockbox.
In "tools/configure" you can find the line
CROSS_COMPILE=${CROSS_COMPILE:-"i586-mingw32msvc-"}
which does not work in newer environments - now the 32-bit prefix is called "i686-w64-mingw32-".
I changed this in the configure script and tried to compile a "Win32 crosscompiled" simulator.
It looks very promising - only a lot of string format and string output warnings - like that:
/cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/tagtree.c: In function ‘tagtree_init’:
/cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/tagtree.c:1178:16: warning: unknown conversion type character ‘z’ in format [-Wformat=]
panicf("tagentry(%zu) and entry mismatch(%zu)",
^
/cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/tagtree.c:1178:16: warning: unknown conversion type character ‘z’ in format [-Wformat=]
/cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/tagtree.c:1178:16: warning: too many arguments for format [-Wformat-extra-args]
and also some conversion warnings like that
/cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/misc.c: In function ‘fast_readline’:
/cygdrive/d/Prog/Projekt/RockBox/rockbox.git/apps/misc.c:218:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
pos = buf_size - ((long)next - (long)buf) - 1;
but it compiles....
...until it comes to the linkage
LD rockboxui.exe
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/libmingw32.a: error adding symbols: File format not recognized
collect2: error: ld returned 1 exit status
make: *** [/cygdrive/d/Prog/Projekt/RockBox/rockbox.git/uisimulator/uisimulator.make:34: /cygdrive/d/Prog/Projekt/RockBox/rockbox.git/build.ipodvideo.sim/rockboxui.exe] Error 1
It seems it does use the wrong directory - that's the 64-bit dir...
So for this build I have to find out why it uses the wrong directory....
-------------------------------------------------------------------
I also tried the 64-bit ming build - with that I also have some linkage problems - but with SDL and directx; maybe the SDL libraries are not correctly installed or a Win32 (DirectX?) DLL linkage is missing...
LD rockboxui.exe
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/libSDL.a(SDL_dx5video.o):(.text+0xf5f): undefined reference to `IID_IDirectDrawSurface3'
I'll also have to find out what the problem for this is...
-------------------------------------------------------------------
P.S. -- doesn't your "Developer" badge signify that you have commit access yourself?
To be honest: I don't know
I got this badge years ago (if I remember correctly it was 2009) - and if I remember correctly, at that time there were two kinds of "developers": a small group with commit access and a bigger group without.
I belonged to the second group - I did some work on the WPS token based rework and on image resizing (and corresponding WPS tags).
Maybe I did some small commits at the end but I do not remember - even if I would have commit access, I've no idea how to setup it up for git (which username, where to set it up, ...)
I was inactive for several years and now try to "reintegrate" - but I think it's harder to setup the build environments nowadays...
(because everything uses outdated stuff and does not work in newer OS versions...)