Port para Haiku y otros

Started by Lt_Henry, September 23, 2009, 07:29:22 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Creo que aún quedan vestigios de mi código de Fenix para BeOS por ahí. ¿Estás compilando con -DTARGET_BEOS o con -DTARGET_LINUX?

Digo porque en BeOS la libdl no era nativa y se usaba la que había hecho alguien y que está todavía en BeBits. Pero creo recordar que no funcionaba exactamente igual que la versión de Linux. No sé cómo estará el asunto en Haiku.

Me da la impresión, aún así, que la función que está fallandao es la dlibaddr (o quizás _dlibaddr) que están en core/include/loadlib.h y cuando fallan no escriben el error. Prueba a poner un par de fprintf(stderr, "%s\n", __dliberr); antes de los return NULL; en caso de error para saber si el error viene de ahí.

Lt_Henry

A ver, si los .so no estan en la ruta que toca, bgdc da un error de que no puede encontrar el modulo X.so. Si estan, pero mal compilados tambien sale algun mensaje de unresolved dependency. Con lo cual, las librerias estan correctamente "instaladas", el concepto de instalar en haiku es muy etereo :D

Para compilar, -DTARGET_BEOS, si no se resiste bastante, este flag compila a la primera. para el configure hay que indicar --prefix=/boot/home/config/ y libtool reemplazarlo por el que trae Haiku. El tema de libdl me suena que en Haiku esta mas maduro. No obstante estoy ahora mismo haciendo mas pruebas, ya os dire cosas.

josebita

Es que creo que el error que te está dando es otro. A la hora de cargar una librería, primero se abre con dlopen (que es la función que da error si falla) pero luego se buscan los símbolos dentro de esa misma librería, y si esa segunda parte falla, Bennu no da ningún error directo; sólo dice que no puede encontrar la función.

Por eso te digo que si puedes echarle un ojo a ver si es esa función la que está fallando.

_-Caleb-_

Siempre puedes preguntar en la lista de correo de haiku-es (En español) o haiku-os (Ingles) o haiku-dev(inglés tb) en freelists o entrar en #Haiku-os@freenode.org  o #Haiku-dev@freenode.org 
A ver si algún pro sabe....

También puedes probar a subirlo a Osdrawer como proyecto a ver si alguien se anima (Aunque ahora Haiku ha pegado un subidón que no va por el camino correcto (Según yo), que es eso de portar aplicaciones KDE?) Con todo lo que puede dar de si el nativo :(

xD

Bueno me alegra ver a algún usuario de Haiku por aquí :D

Yo lo uso desde hace tiempo, incluso he subido alguna cosilla a Haikuware :D (Con suerte tenemos Alpha2 este año :D)

Lt_Henry

Es un problema especifico de bennu, no creo que me puedan ayudar en ningun canal de haiku. Por cierto, el tema de Qt me parece que ya lo discutimos en las listas de haiku-es. Aunque Haiku parezca mas vivo que nunca siguen los mismos programadores de siempre, rozando ya la leyenda, hay que portar lo que sea para acercarlo a la gente, por eso, trato de portar bennu.

Lt_Henry

Bueno, voy cercando el problema. Siguiendo los consejos de josebita, he añadido algo de verbosidad en las llamadas de carga de librerias. dlopen parece funcionar correctamente, de hecho devuelve un error si los .so no estan instalados. No obstante he puesto fprintfs para ver que pasa en dlibaddr y para mod_video por ejemplo ocurre lo siguiente:

-mod_video_modules_dependency
-mod_video_functions_export

son cargados correctamente, mientras que
-mod_video_constants_def
-mod_video_types_def
-mod_video_globals_def
-mod_video_locals_def

no tienen la misma suerte. Para el resto de modulos pasa algo parecido pero en otro orden. Echandole un ojo a mod_video.c veo que efectivamente, este solo declara una lista de funciones y de dependencias para ser exportado.

bgdc insiste en que "Undefined procedure ("SET_MODE")"  :(

Alguna idea de por donde seguir mirando?

SplinterGU

esta bien que de error la carga de esos simbolos porque no existen...

podes poner el codigo de ejemplo que estas usando?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Lt_Henry

Si, eso he deducido, que los errores eran normales, ya que las bibliotecas no publicaban tales simbolos. Supongo que al codigo te referiras al de bennu. Bueno, lo tengo en el portatil del curro, pero ya te digo que cualquiera de los ejemplos falla en la primera funcion, variable o constante que aparezca en el codigo.

_-Caleb-_

Quote from: Lt_Henry on January 31, 2010, 11:18:47 PM
Es un problema especifico de bennu, no creo que me puedan ayudar en ningun canal de haiku. Por cierto, el tema de Qt me parece que ya lo discutimos en las listas de haiku-es. Aunque Haiku parezca mas vivo que nunca siguen los mismos programadores de siempre, rozando ya la leyenda, hay que portar lo que sea para acercarlo a la gente, por eso, trato de portar bennu.

osti quien eres en la lista? xD yo tb escribo ahí xD

Y si, algunos empiezan a rozar el calificativo de "Programador épico" xD

Saludos! A ver si podemos tenerlo entonces en breve xD

SplinterGU

no, me refiero al prg de prueba.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Lt_Henry

[code language="bennu"]
import "mod_blendop";
import "mod_text";
import "mod_grproc";
import "mod_video";
import "mod_map";
import "mod_screen";
import "mod_path";
import "mod_rand";
import "mod_say";
import "mod_mouse";
import "mod_scroll";
import "mod_math";
import "mod_draw";


PROCESS Main()
BEGIN
   set_mode(800,600,32);
   set_fps (0, 0) ;
END
[/code]

Bueno, este es el código de prueba, falla como no, en set_mode pero vamos, que si pones otra cosa delante falla tambien.