https://www.segasaturno.com/portal/viewtopic.php?f=33&t=7702&p=94403#p94403
-----------------------------------
SebasSBM
07 Marzo 2016, 11:45 AM

Re: [Tutorial 5J] Compilación De La Librería Libyaul
-----------------------------------
Ryo: a mí me falla en el mismo paso: `make install-release`.

Tras haber realizado el proceso de instalación tal que así:

[code linenumbers=false]
# Preparar el directorio para el IDE de saturn
cd ~
mkdir saturn_ide
cd saturn_ide
git clone https://github.com/ijacquez/libyaul.git libyaul
mkdir tool_chains
cd libyaul

# Actualizar submódulos
git submodule init
git submodule update -f

# Copiar el archivo de configuración por defecto para editarlo
cd build_scripts
cp -v config{.in,}
[/code]

Luego, en el config editamos:
[code linenumbers=false]
# Ruta donde se instalará la tool-chain
BUILD_INSTALL_DIR="${HOME}/saturn_ide/tool_chains"

# Opcional: Archivos temporales de build-compiler (logs incluidos)
BUILD_SRC_DIR="/tmp/libyaul_dump/"

# Desactivar GDB
OPTION_DOWNLOAD_TARBALLS="yes"
OPTION_ENABLE_GDB="no"
[/code]

Me instalo estas librerías:
[code linenumbers=false]
sudo apt-get install libgmp-dev libgmp3-dev
sudo apt-get install libmpfr-dev
sudo apt-get install libmpc-dev
apt-get install libncurses5-dev
sudo apt-get install realpath
[/code]

Luego ejecuto:
[code linenumbers=false]
./build-compiler
[/code]

Aquí me genera la tool-chain sin errores. Pero me deja un montón de Warnings en los logs temporales. Son fácilmente localizables buscando " ^" dentro de ellos (o \s\^  como regexp si lo abres con [i]vim[/i]).

Vuelvo al directorio de libyaul y preparo el nuevo entorno:
[code linenumbers=false]
export PATH="/home/sebassbm/saturn_ide/tool_chains/sh-elf/bin:/home/sebassbm/saturn_ide/tool_chains/m68k-elf/bin:${PATH}"
cd ~/saturn_ide/libyaul
cp -v yaul.env.in yaul.env
[/code]

En yaul.env edito:
export INSTALL_ROOT=${HOME}/saturn_ide/tool-chains/sh-elf
export BUILD_ROOT=${HOME}/saturn_ide/libyaul

Entonces, ejecuto [b]make release[/b]. Parece que se lo traga, pero va dejando un reguero de errores de compilación a su paso:

[u]Los errores extraídos del output:[/u]
[code linenumbers=false]
kernel/mm/realloc_r.c: In function '_realloc_r':
kernel/mm/realloc_r.c:11:9: warning: implicit declaration of function 'realloc' [-Wimplicit-function-declaration]
kernel/mm/realloc_r.c:11:16: warning: incompatible implicit declaration of built-in function 'realloc' [enabled by default]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h: In function 'isonum_723':
kernel/vfs/fs/iso9660/iso9660-internal.h:200:9: warning: implicit declaration of function 'be16dec' [-Wimplicit-function-declaration]
kernel/vfs/fs/iso9660/iso9660-internal.h: In function 'isonum_733':
kernel/vfs/fs/iso9660/iso9660-internal.h:225:9: warning: implicit declaration of function 'be32dec' [-Wimplicit-function-declaration]
kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_mount':
kernel/vfs/fs/iso9660/iso9660.c:63:28: warning: implicit declaration of function 'bread' [-Wimplicit-function-declaration]
kernel/vfs/fs/iso9660/iso9660.c:66:9: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
kernel/vfs/fs/iso9660/iso9660.c:81:9: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration]
kernel/vfs/fs/iso9660/iso9660.c:81:37: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
kernel/vfs/fs/iso9660/iso9660.c:100:17: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration]
kernel/vfs/fs/iso9660/iso9660.c:100:17: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_find_file':
kernel/vfs/fs/iso9660/iso9660.c:117:9: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_find_directory':
kernel/vfs/fs/iso9660/iso9660.c:140:9: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
kernel/vfs/fs/iso9660/iso9660.c: In function 'iso9660_find':
kernel/vfs/fs/iso9660/iso9660.c:191:25: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
kernel/vfs/fs/iso9660/iso9660.c:199:33: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
kernel/vfs/fs/iso9660/iso9660.c:200:37: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
kernel/vfs/fs/iso9660/iso9660.c:226:33: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
kernel/vfs/fs/iso9660/iso9660.c:245:37: warning: pointer targets in passing argument 1 of 'isonum_711' differ in signedness [-Wpointer-sign]
In file included from kernel/vfs/fs/iso9660/iso9660.c:8:0:
kernel/vfs/fs/iso9660/iso9660-internal.h:169:1: note: expected 'const uint8_t *' but argument is of type 'const char *'
scu/bus/b/vdp2/vdp2_scrn_back_screen_color_set.c: In function 'vdp2_scrn_back_screen_color_set':
scu/bus/b/vdp2/vdp2_scrn_back_screen_color_set.c:23:9: warning: implicit declaration of function 'vdp2_scrn_back_screen_addr_set' [-Wimplicit-function-declaration]
scu/bus/b/vdp2/vdp2_scrn_bitmap_format_set.c: In function 'vdp2_scrn_bitmap_format_set':
scu/bus/b/vdp2/vdp2_scrn_bitmap_format_set.c:173:41: warning: 'bank' may be used uninitialized in this function [-Wmaybe-uninitialized]
scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c: In function 'vdp2_scrn_cell_format_set':
scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c:386:17: warning: 'pncnx' may be used uninitialized in this function [-Wmaybe-uninitialized]
scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c:178:31: warning: 'sc_number' may be used uninitialized in this function [-Wmaybe-uninitialized]
scu/bus/b/vdp2/vdp2_scrn_cell_format_set.c:161:31: warning: 'sp_number' may be used uninitialized in this function [-Wmaybe-uninitialized]
scu/bus/cpu/smpc/smpc_peripheral_digital_get.c: In function 'smpc_peripheral_digital_get':
scu/bus/cpu/smpc/smpc_peripheral_digital_get.c:26:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
scu/bus/cpu/smpc/smpc_peripheral_digital_get.c:27:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
scu/bus/cpu/smpc/smpc_peripheral_init.c: In function 'peripheral_update':
scu/bus/cpu/smpc/smpc_peripheral_init.c:218:39: warning: 'connected' may be used uninitialized in this function [-Wmaybe-uninitialized]
scu/bus/cpu/smpc/smpc_peripheral_init.c:305:26: warning: 'multitap_id' may be used uninitialized in this function [-Wmaybe-uninitialized]
scu/bus/cpu/smpc/smpc_smc_call.c: In function 'smpc_smc_call':
scu/bus/cpu/smpc/smpc_smc_call.c:61:1: warning: control reaches end of non-void function [-Wreturn-type]
prs.c: In function 'prs_decompress':
prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat]
prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat]
prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat]
prs.c:215:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat]
prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat]
prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat]
prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat]
prs.c:234:25: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'uint32_t' [-Wformat]
fix16_str.c: In function 'fix16_from_str':
fix16_str.c:62:5: warning: array subscript has type 'char' [-Wchar-subscripts]
fix16_str.c:73:5: warning: array subscript has type 'char' [-Wchar-subscripts]
fix16_str.c:93:9: warning: array subscript has type 'char' [-Wchar-subscripts]
fix16_str.c:106:9: warning: array subscript has type 'char' [-Wchar-subscripts]
fix16_str.c:106:9: warning: array subscript has type 'char' [-Wchar-subscripts]
[/code]

Y al ejecutar [b]make install-release[/b]:
[code linenumbers=false]
mrelease mlibyaul
make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libyaul»
make[1]: No se hace nada para «release».
make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libyaul»
mrelease mlibbcl
make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libbcl»
make[1]: No se hace nada para «release».
make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libbcl»
mrelease mlibfixmath
make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libfixmath»
make[1]: No se hace nada para «release».
make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libfixmath»
mrelease mlibtga
make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libtga»
make[1]: No se hace nada para «release».
make[1]: se sale del directorio «/home/sebassbm/saturn_ide/libyaul/libtga»
minstall-release mlibyaul
make[1]: se ingresa al directorio «/home/sebassbm/saturn_ide/libyaul/libyaul»
realpath: opción incorrecta -- «m»
Uso:
 realpath [-s|--strip] [-z|--zero] nombre de archivo ...
 realpath -h|--help
 realpath -v|--version
realpath: opción incorrecta -- «m»
Uso:
 realpath [-s|--strip] [-z|--zero] nombre de archivo ...
 realpath -h|--help
 realpath -v|--version
mlibyaul/yaul.h
mkdir: falta un operando
Pruebe 'mkdir --help' para más información.
install: falta el operando archivo de destino después de «/home/sebassbm/saturn_ide/libyaul/libyaul/./yaul.h»
Pruebe 'install --help' para más información.

[...]

make: *** [install-release] Error 2
[/code]

Algo va mal en el paso [b]make release[/b], pero lo más raro es el fallo que hace [b]make install-release[/b] el cual parece estar comportándose como si algo fallara en el Makefile con install-release (aunque sólo es una corazonada).

También puede ser que los fallos extraídos de [b]make release[/b] tengan mucho que ver con lo que está pasando, o los cientos de Warnings que el [b]build-compiler[/b] deja en la carpeta temporal al generar la tool-chain.


