[Bennu Module] mod_expand

Started by FreeYourMind, March 11, 2010, 10:39:28 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

en el caso de CFLAGS cambia esto

-finline-functions -fno-strict-aliasing -Wall -ffast-math -fomit-frame-pointer -mcpu=arm920t

no recuerdo que va, pero fijate en el script de seteo de variables de caanoo que viene con los fuentes de bennugd.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Recuerda que estoy compilando para wiz no caanoo.
Por cierto la he vuelto a compilar de nuevo con codeblocks por probar, se queda en 2.67 kb en lugar de 4,85 kb de la tuya, y no va en la wiz (esto ya lo comente antes de probar con el makefile).
Volveré al makefile, tengo que conseguir compilarla de esta forma...

FreeYourMind

Una cosa, me estoy fijando, en el open2xwiz, tienes el CFLAGS con comillas, pero en el makefile que pusiste no tiene.
Estas seguro que el makefile que pusiste con la so compilada te funciona ? Fue el que usaste, o cambiaste algo a ojo ?

SplinterGU

#108
vamos por partes...

1) el make que puse y subi aca es para wiz, no tenes que tocar nada, salvo los paths
2) en codeblock es mas chico porque le saca los simbolos de debug, para eso tenes que hacerle strip al .so resultado
3) en los makefiles no van entre comillas
4) funciona perfecto, fue el que use
5) te debe faltar alguna libreria, captura los logs de compilacion del bgdc cuando lo corras en la wiz, otra opcion puede ser que estes apuntando a otro sdk
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

por favor, avisa si lo lograste
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Sobre el makefile voy a intentarlo de nuevo.
Sobre el codeblocks, este compila, aunque salen algunos detalles de .so no encontradas, te paso el log completo, mira en las rutas del toolchain a ver si algo de esos errores es lo que hace que al final quede inservible.


-------------- Clean: target in WizTest ---------------

Cleaned "WizTest - target"

-------------- Build: target in WizTest ---------------

Skipping file (no compiler program set): main.c
Linking dynamic library: mod_expand.so
GNU ld version 2.16.1
  Supported emulations:
   armelf_linux
   armelf
using internal linker script:
==================================================
/* Script for --shared -z combreloc: shared library, combine & sort relocs */
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
      "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
/* Do we need any of these for elf?
   __DYNAMIC = 0;    */
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  . = 0 + SIZEOF_HEADERS;
  .hash           : { *(.hash) }
  .dynsym         : { *(.dynsym) }
  .dynstr         : { *(.dynstr) }
  .gnu.version    : { *(.gnu.version) }
  .gnu.version_d  : { *(.gnu.version_d) }
  .gnu.version_r  : { *(.gnu.version_r) }
  .rel.dyn        :
    {
      *(.rel.init)
      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
      *(.rel.fini)
      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
      *(.rel.data.rel.ro*)
      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
      *(.rel.ctors)
      *(.rel.dtors)
      *(.rel.got)
      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
    }
  .rela.dyn       :
    {
      *(.rela.init)
      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
      *(.rela.fini)
      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
      *(.rela.ctors)
      *(.rela.dtors)
      *(.rela.got)
      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
    }
  .rel.plt        : { *(.rel.plt) }
  .rela.plt       : { *(.rela.plt) }
  .init           :
  {
    KEEP (*(.init))
  } =0
  .plt            : { *(.plt) }
  .text           :
  {
    *(.text .stub .text.* .gnu.linkonce.t.*)
    KEEP (*(.text.*personality*))
    /* .gnu.warning sections are handled specially by elf32.em.  */
    *(.gnu.warning)
    *(.glue_7t) *(.glue_7)
  } =0
  .fini           :
  {
    KEEP (*(.fini))
  } =0
  PROVIDE (__etext = .);
  PROVIDE (_etext = .);
  PROVIDE (etext = .);
  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
  .rodata1        : { *(.rodata1) }
  .eh_frame_hdr : { *(.eh_frame_hdr) }
  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
  .gcc_except_table   : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
  /* Adjust the address for the data segment.  We want to adjust up to
     the same address within the page on the next page up.  */
  . = ALIGN (0x8000) - ((0x8000 - .) & (0x8000 - 1)); . = DATA_SEGMENT_ALIGN (0x8000, 0x1000);
  /* Exception handling  */
  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
  .gcc_except_table   : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
  /* Thread Local Storage sections  */
  .tdata   : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
  .tbss   : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
  /* Ensure the __preinit_array_start label is properly aligned.  We
     could instead move the label definition inside the section, but
     the linker would then create the section even if it turns out to
     be empty, which isn't pretty.  */
  . = ALIGN(32 / 8);
  .preinit_array     : { KEEP (*(.preinit_array)) }
  .init_array     : { KEEP (*(.init_array)) }
  .fini_array     : { KEEP (*(.fini_array)) }
  .ctors          :
  {
    /* gcc uses crtbegin.o to find the start of
       the constructors, so we make sure it is
       first.  Because this is a wildcard, it
       doesn't matter if the user does not
       actually link against crtbegin.o; the
       linker won't look for a file to match a
       wildcard.  The wildcard also means that it
       doesn't matter which directory crtbegin.o
       is in.  */
    KEEP (*crtbegin*.o(.ctors))
    /* We don't want to include the .ctor section from
       from the crtend.o file until after the sorted ctors.
       The .ctor section from the crtend file contains the
       end of ctors marker and it must be last */
    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
    KEEP (*(SORT(.ctors.*)))
    KEEP (*(.ctors))
  }
  .dtors          :
  {
    KEEP (*crtbegin*.o(.dtors))
    KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
    KEEP (*(SORT(.dtors.*)))
    KEEP (*(.dtors))
  }
  .jcr            : { KEEP (*(.jcr)) }
  .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }
  .dynamic        : { *(.dynamic) }
  . = DATA_SEGMENT_RELRO_END (0, .);
  .got            : { *(.got.plt) *(.got) }
  .data           :
  {
    __data_start = . ;
    *(.data .data.* .gnu.linkonce.d.*)
    KEEP (*(.gnu.linkonce.d.*personality*))
    SORT(CONSTRUCTORS)
  }
  .data1          : { *(.data1) }
  _edata = .;
  PROVIDE (edata = .);
  __bss_start = .;
  __bss_start__ = .;
  .bss            :
  {
   *(.dynbss)
   *(.bss .bss.* .gnu.linkonce.b.*)
   *(COMMON)
   /* Align here to ensure that the .bss section occupies space up to
      _end.  Align after .bss to ensure correct alignment even if the
      .bss section disappears because there are no input sections.  */
   . = ALIGN(32 / 8);
  }
  . = ALIGN(32 / 8);
  _end = .;
  _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
  PROVIDE (end = .);
  . = DATA_SEGMENT_END (.);
  /* Stabs debugging sections.  */
  .stab          0 : { *(.stab) }
  .stabstr       0 : { *(.stabstr) }
  .stab.excl     0 : { *(.stab.excl) }
  .stab.exclstr  0 : { *(.stab.exclstr) }
  .stab.index    0 : { *(.stab.index) }
  .stab.indexstr 0 : { *(.stab.indexstr) }
  .comment       0 : { *(.comment) }
  /* DWARF debug sections.
     Symbols in the DWARF debugging sections are relative to the beginning
     of the section so we begin them at 0.  */
  /* DWARF 1 */
  .debug          0 : { *(.debug) }
  .line           0 : { *(.line) }
  /* GNU DWARF 1 extensions */
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
  .debug_sfnames  0 : { *(.debug_sfnames) }
  /* DWARF 1.1 and DWARF 2 */
  .debug_aranges  0 : { *(.debug_aranges) }
  .debug_pubnames 0 : { *(.debug_pubnames) }
  /* DWARF 2 */
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line) }
  .debug_frame    0 : { *(.debug_frame) }
  .debug_str      0 : { *(.debug_str) }
  .debug_loc      0 : { *(.debug_loc) }
  .debug_macinfo  0 : { *(.debug_macinfo) }
  /* SGI/MIPS DWARF 2 extensions */
  .debug_weaknames 0 : { *(.debug_weaknames) }
  .debug_funcnames 0 : { *(.debug_funcnames) }
  .debug_typenames 0 : { *(.debug_typenames) }
  .debug_varnames  0 : { *(.debug_varnames) }
  .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
  /DISCARD/ : { *(.note.GNU-stack) }
}
==================================================
attempt to open /cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/../../../../arm-linux/lib/crti.o succeeded
/cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/../../../../arm-linux/lib/crti.o
attempt to open /cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/crtbeginS.o succeeded
/cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/crtbeginS.o
attempt to open C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libstdc++.so succeeded
-lstdc++ (C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libstdc++.so)
attempt to open C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libm.so succeeded
-lm (C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libm.so)
attempt to open C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libgcc_s.so succeeded
-lgcc_s (C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libgcc_s.so)
attempt to open C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libc.so succeeded
opened script file C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libc.so
opened script file C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libc.so
attempt to open libc.so.6 failed
attempt to open C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libc.so.6 succeeded
libc.so.6 (C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libc.so.6)
attempt to open libc_nonshared.a failed
attempt to open C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libc_nonshared.a succeeded
attempt to open C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libgcc_s.so succeeded
-lgcc_s (C:\Program Files\GPH_SDK\tools\gcc-4.0.2-glibc-2.3.6\arm-linux\arm-linux\lib/libgcc_s.so)
attempt to open /cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/crtendS.o succeeded
/cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/crtendS.o
attempt to open /cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/../../../../arm-linux/lib/crtn.o succeeded
/cygdrive/c/Program Files/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/4.0.2/../../../../arm-linux/lib/crtn.o
Output size is 2,68 KB
Process terminated with status 0 (0 minutes, 19 seconds)
0 errors, 0 warnings

SplinterGU

en mi vida vi eso, el codeblocks es siniestro.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Bueno ya me instale el de Caanoo, ahora mismo estoy instalando el cygwin (cosa no necesaria para el de Wiz, ya que tenia la cygwin1.dll y dependencias en la carpeta bin del toochain, y funcionaba de esta forma).
Voy a probar con codeblocks compilarlo para caanoo a ver si chuta, si lo hace, dejo ya de perder el tiempo ;)

SplinterGU

cygwin no, te sugiero usar mingw y msys
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Si me lo pide el arm-gph-linux-gnueabi-c++.exe, como no voy a tener que utilizarlo !? El mingw es sólo para host, para target es el que te he dicho :)
De todos modos aunque el path (variable de sistema) del cygwin tampoco me funciona!!! Ya he copiado 2 o 3 dll's de cygwin y ya no tengo problemas con el.

Ahora tengo otros problemas con el SDK de Caanoo, me he tirado un par de horas y ya estoy harto, desde no localizarme el 'crti.o' que puse en la carpeta del src y funciono (sólo en uno de mis proyectos, cosa rara que se diga...), pero tengo otro problema, no me encuentra la 'libc.so.6', por mas que la tenga su ruta y la ponga en todo puto sitio...
Por hoy lo dejó, tanta configuración me pone enfermo...
El codeblocks tambien se pone raro a veces el maldito...

SplinterGU

solo necesitarias copiar el runtime de cygwin para el compilador, y con eso deberia ir, las librerias que usa para generar los ejecutables no son de cygwin, son del SDK...

me suena a que tienes un quilombo de cosas, que has metido mano por todos lados y cargado un par de cosas.

tambien hay archivos con extension .la donde tienen las rutas de las librerias reales, y eso es en momento de instalacion, los paquetes que he probado yo del SDK de GPH los tuve que tocar a mano, porque GPH empaqueto el SDK que tienen instalado, y por ende con los paths que ellos tienen instalados, y no funcionan en otros sistemas, por eso lo ideal en vez de subir los SDK armados, deberian subir los paquetes del toolchains para que se genere en la pc donde se va a usar, voy a revisar esto y a hablar con Simon al respecto si aun sigue siendo asi en las ultimas versiones.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

efectivamente es como dije, los paths dentro de los .la estan seteados a la configuracion que tiene el entorno de desarrollo de GPH, y no a donde el instalador instala las cosas.

creo que te va a ser dificil hacer funcionar las cosas.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Vaya, pero he visto a mas instalandolo y no tenian problemas. Es que somos muy pocos en realidad tocando los sdk, y en windows bastante menos, heheheheh
Mañana lo miro.

SplinterGU

no se, a mi me dio problemas haciendo uso de las librerias e instalando paquetes como la sdl_mixer, pero se ve que para algunas cosas funciona, no lo se...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Me he pasado a linux para intentar compilarlo, lo estoy haciendo para Caanoo.
No he tenido problemas para instalarme las cosas o de rutas, en linux estas cosas van mucho mejor :)
Solo tengo un problema en el paso final, ya he generado el objeto mod_expand.o, el problema es al hacer merge de libgrbase.so.

Utilizo los sources de la version r184 pero las so compiladas son de una version anterior (libblit.so y libgrbase.so), creo que el problema viene de esto, porque la so que utilizo son version EABI 0 y el target es version EABI 4, y no dispongo de las ultimas compiladas ni estoy por compilar Bennu, si puedes sube la ultima version compilada para caanoo, con el correcto EABI, o pasame solo estos 2 modulos.

Otra cosa, he tenido que copiar ambas so a la carpeta lib del toochain, no me las localizaba.

El error es el siguiente:


/home/geca/Geca/mod_expand/caanoo_toolchain/gcc-4.2.4-glibc-2.7-eabi/bin/../lib/gcc/arm-gph-linux-gnueabi/4.2.4/../../../../arm-gph-linux-gnueabi/bin/ld: ERROR: Source object /home/geca/Geca/mod_expand/caanoo_toolchain/gcc-4.2.4-glibc-2.7-eabi/lib/libgrbase.so has EABI version 0, but target mod_expand.so has EABI version 4
/home/geca/Geca/mod_expand/caanoo_toolchain/gcc-4.2.4-glibc-2.7-eabi/bin/../lib/gcc/arm-gph-linux-gnueabi/4.2.4/../../../../arm-gph-linux-gnueabi/bin/ld: failed to merge target specific data of file /home/geca/Geca/mod_expand/caanoo_toolchain/gcc-4.2.4-glibc-2.7-eabi/lib/libgrbase.so
collect2: ld returned 1 exit status
make: *** [mod_expand.so] Error 1


Gracias