Buff, chicos esto no tiene ni pies ni cabeza, he estado mirando la libc.a del gcc 4.1.1 y no hay rastro del syscalls.o. Al final haciendo una busqueda he encontrado el syscalls en una libreria llamada: libgloss-linux.a
Lo que he intentado es, tal y como hizo Chui en la vieja libc.a, introducir toda la libreria x_gp32 en libgloss-linux.a y que además hay dos!!
Una es thumb y otra normal, ni idea :?
La cuestión es que he vuelto a compilar todo el SDL y el fopen sigue sin tirar y SDL_Delay como en la versión anterior tampoco da señales de vida, si la usas entras en un loop infinito
Si alguién quiere mirar donde está el fallo de SDL_Delay, esta función depende de:
Código:
/opt/gp32/current/lib/libSDL.a(SDL_systimer.o): In function `SDL_Delay':
SDL_systimer.c:(.text+0xd8): undefined reference to `x_gp32_NOP'
SDL_systimer.c:(.text+0xf4): undefined reference to `x_gp32_timer_counter'
Y fopen es que no consigo que utilice las funciones internas de la GP, se ve fácilmente que no busca esas dependencias quitándole la librería (-lgloss-linux) del makefile, que da como resultado:
Código:
sdltest.o: In function `main':
sdltest.c:(.text+0x4b8): undefined reference to `x_gp32_SetCPUSpeed'
/opt/gp32/current/lib/libSDL.a(SDL_systimer.o): In function `SDL_GetTicks':
SDL_systimer.c:(.text+0x10): undefined reference to `x_gp32_timer_counter'
/opt/gp32/current/lib/libSDL.a(SDL_systimer.o): In function `SDL_SYS_TimerQuit':
SDL_systimer.c:(.text+0x2c): undefined reference to `x_gp32_DisableIRQ'
SDL_systimer.c:(.text+0x38): undefined reference to `x_gp32_InstallSWIIRQ'
SDL_systimer.c:(.text+0x3c): undefined reference to `x_gp32_EnableIRQ'
SDL_systimer.c:(.text+0x4c): undefined reference to `x_gp32_timer_ISR'
/opt/gp32/current/lib/libSDL.a(SDL_systimer.o): In function `SDL_SYS_TimerInit':
SDL_systimer.c:(.text+0x58): undefined reference to `x_gp32_DisableIRQ'
SDL_systimer.c:(.text+0x64): undefined reference to `x_gp32_InstallSWIIRQ'
SDL_systimer.c:(.text+0x68): undefined reference to `x_gp32_EnableIRQ'
/opt/gp32/current/lib/libSDL.a(SDL_systimer.o): In function `_sdl_gp32_TimerInt':
SDL_systimer.c:(.text+0xb0): undefined reference to `x_gp32_timer_counter'
/opt/gp32/current/lib/libSDL.a(SDL_systimer.o): In function `SDL_Delay':
SDL_systimer.c:(.text+0xd8): undefined reference to `x_gp32_NOP'
SDL_systimer.c:(.text+0xf4): undefined reference to `x_gp32_timer_counter'
/opt/gp32/current/lib/libSDL.a(SDL_dmaaudio.o): In function `sdl_gp32_dma_audio_stop':
SDL_dmaaudio.c:(.text+0x44): undefined reference to `x_gp32_IsrUninstall'
/opt/gp32/current/lib/libSDL.a(SDL_dmaaudio.o): In function `sdl_gp32_dma_audio_start':
SDL_dmaaudio.c:(.text+0xc4): undefined reference to `x_gp32_ArmEnableCPSRInterrupt'
SDL_dmaaudio.c:(.text+0x120): undefined reference to `x_gp32_dma_MMUChange'
SDL_dmaaudio.c:(.text+0x174): undefined reference to `x_gp32_GetPCLK'
SDL_dmaaudio.c:(.text+0xd60): undefined reference to `x_gp32_IsrInstall'
/opt/gp32/current/lib/libSDL.a(SDL_gp32video.o): In function `SDL_gp32_SetColors':
SDL_gp32video.c:(.text+0x5a8): undefined reference to `x_gp32_XArmDisableInterrupt'
SDL_gp32video.c:(.text+0x610): undefined reference to `x_gp32_XArmEnableInterrupt'
/opt/gp32/current/lib/libSDL.a(SDL_gp32video.o): In function `SDL_gp32_SetVideoMode':
SDL_gp32video.c:(.text+0x734): undefined reference to `x_gp32_initFramebuffer'
/opt/gp32/current/lib/libSDL.a(SDL_gp32events.o): In function `SDL_gp32_PumpEvents':
SDL_gp32events.c:(.text+0xc): undefined reference to `x_gp32_ReadKeys'
SDL_gp32events.c:(.text+0xbc): undefined reference to `x_gp32_nKeys'
/opt/gp32/current/lib/libSDL.a(SDL_sysjoystick.o): In function `SDL_SYS_JoystickUpdate':
SDL_sysjoystick.c:(.text+0x40): undefined reference to `x_gp32_ReadKeys'
SDL_sysjoystick.c:(.text+0x17c): undefined reference to `x_gp32_nKeys'
collect2: ld returned 1 exit status
Vamos que no esta preguntando por las funciones de la SMC que se curró Chui :-/
Asi que a no ser que se os ocurra algo por donde intentar arreglar el problema del fopen, doy por terminado mi intento, no me queda mucho tiempo más
En lo único que he avanzado es que ahora SDL_mixer y SDL_image no se pelean
Un Saludo, siento las malas noticias y estaré leyendo por si se os ocurre algo :_
Marcadores