Posté le 23/02/2023 10:08
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 274 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 23/02/2023 11:11 | #
Tu peux utiliser https://github.com/JuliaMath/openlibm (c'est ce que je fais pour le fxSDK).
Citer : Posté le 23/02/2023 12:12 | #
j'ai regardé mais il y a beaucoup de code pour des plateformes spécifiques. je cherche une lib 100% en c. même si c'est du pur software et non hardware.
Citer : Posté le 23/02/2023 12:57 | #
Il y a des optimisations spécifiques à la plateforme mais src/ + ld80/ ça te fait la lib math complète en pur C. Regarde mon clone sur Gitea tu verras que j'ai essentiellement rien changé.
Citer : Posté le 23/02/2023 13:14 | #
oh! merci beacoup. je n'avais pas regardé cette arch car je ne la connaissait pas.
Citer : Posté le 23/02/2023 13:43 | #
Ce n'est pas une architecture. Regarde bien les dossiers, les dossiers spécifiques aux architectures contiennent juste quelques fichiers (en gros fenv.c) pour spécifier les options. Les trois dossiers, src, ld80 et ld128 contiennent le code. src implémente les fonctions sur les float et les double, ld80 implémente les fonctions sur les long double en supposant qu'ils font 80 bits (d'où le nom du dossier : ld80 → long double 80 bits), et ld128 implémente les fonctions sur les long double en supposant qu'ils font 128 bits.
D'ailleurs je me suis trompé, c'est pas ld80 qu'il faut regarder (c'est spécifique x86). Il faut prendre soit src + ld128 soit src tout seul (si les long double font 64 bits et sont donc identiques aux double).
Après cette histoire de long double ça soulève une question : tu veux une version de la lib indépendante de la plateforme, mais ta plateforme elle a des long double de quelle taille ? Et si tu codes sur plusieurs plateformes en même temps, est-ce que ces plateformes sont d'accord ? Parce que si elles ont des tailles différentes, le même code pourra donner des résultats différents.
Citer : Posté le 23/02/2023 14:05 | #
quel bazar! pour l'instant je code pour amd64 mais je compte ajouter les casio et autres plateformes.
au pire je vais juste inclure openlibm et je rajouterait des architectures.
Citer : Posté le 23/02/2023 14:50 | #
j'ai ajouté le /include de openlibm et j'ai dejà des erreurs
ld : build/lua/lmathlib.o:(.bss+0x4) : définitions multiples de « __END_DECLS »; build/lua/lvm.o:(.bss+0x4) : défini pour la première fois ici
ld : build/lua/liolib.o:(.bss+0x0) : définitions multiples de « errno »; build/lua/lauxlib.o:(.bss+0x0) : défini pour la première fois ici
ld : build/lua/lcode.o:(.bss+0x0) : définitions multiples de « __BEGIN_DECLS »; build/lua/lvm.o:(.bss+0x0) : défini pour la première fois ici
ld : build/lua/lcode.o:(.bss+0x4) : définitions multiples de « __END_DECLS »; build/lua/lvm.o:(.bss+0x4) : défini pour la première fois ici
ld : build/lua/ltable.o:(.bss+0x0) : définitions multiples de « __BEGIN_DECLS »; build/lua/lvm.o:(.bss+0x0) : défini pour la première fois ici
ld : build/lua/ltable.o:(.bss+0x4) : définitions multiples de « __END_DECLS »; build/lua/lvm.o:(.bss+0x4) : défini pour la première fois ici
ld : build/lua/loslib.o:(.bss+0x0) : définitions multiples de « errno »; build/lua/lauxlib.o:(.bss+0x0) : défini pour la première fois ici
ld : build/lua/lobject.o:(.bss+0x0) : définitions multiples de « __BEGIN_DECLS »; build/lua/lvm.o:(.bss+0x0) : défini pour la première fois ici
ld : build/lua/lobject.o:(.bss+0x4) : définitions multiples de « __END_DECLS »; build/lua/lvm.o:(.bss+0x4) : défini pour la première fois ici
ld : build/lua/lstrlib.o:(.bss+0x0) : définitions multiples de « __BEGIN_DECLS »; build/lua/lvm.o:(.bss+0x0) : défini pour la première fois ici
ld : build/lua/lstrlib.o:(.bss+0x4) : définitions multiples de « __END_DECLS »; build/lua/lvm.o:(.bss+0x4) : défini pour la première fois ici
ld : build/lua/luac.o:(.bss+0x0) : définitions multiples de « errno »; build/lua/lauxlib.o:(.bss+0x0) : défini pour la première fois ici
j'ai deja dû ajouter des ; car il y an avait pas après __BEGIN_DECLS et __END_DECLS
Citer : Posté le 23/02/2023 14:53 | #
Pour __BEGIN_DECLS et __END_DECLS : enlève tes ; il n'y en a pas besoin (c'est des macros !).
Pour errno c'est possiblement ta libc donc le <errno.h> ne se comporte pas bien (attention à ne pas définir errno en globale dedans !).
Citer : Posté le 23/02/2023 14:57 | #
c'est bon j'ai corrigé les problèmes. mais il me reste encore beaucoup de boulot
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/kernel/main.c -o build/kernel/main.o
mkdir -p build/kernel/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/kernel/console.c -o build/kernel/console.o
src/kernel/console.c: In function ‘console_print’:
src/kernel/console.c:20:21: warning: passing argument 1 of ‘console_display’ from incompatible pointer type [-Wincompatible-pointer-types]
20 | console_display(&buffer);
| ^~~~~~~
| |
| char (*)[4096]
In file included from src/kernel/console.c:1:
src/kernel/../console.h:13:28: note: expected ‘char *’ but argument is of type ‘char (*)[4096]’
13 | void console_display(char* data);
| ~~~~~~^~~~
mkdir -p build/x86_64/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/arch/x86_64/io.c -o build/x86_64/io.o
mkdir -p build/x86_64/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/arch/x86_64/console.c -o build/x86_64/console.o
mkdir -p build/x86_64/boot/ && \
nasm -f elf64 src/arch/x86_64/boot/main.asm -o build/x86_64/boot/main.o
mkdir -p build/x86_64/boot/ && \
nasm -f elf64 src/arch/x86_64/boot/header.asm -o build/x86_64/boot/header.o
mkdir -p build/x86_64/boot/ && \
nasm -f elf64 src/arch/x86_64/boot/main64.asm -o build/x86_64/boot/main64.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lmem.c -o build/lua/lmem.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/ldebug.c -o build/lua/ldebug.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lapi.c -o build/lua/lapi.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/ldo.c -o build/lua/ldo.o
src/lua/ldo.c: In function ‘luaD_throw’:
src/lua/ldo.c:135:1: warning: ‘noreturn’ function does return
135 | }
| ^
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lauxlib.c -o build/lua/lauxlib.o
src/lua/lauxlib.c: In function ‘luaL_addlstring’:
src/lua/lauxlib.c:582:15: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
582 | memcpy(b, s, l * sizeof(char));
| ^
In file included from src/lua/lauxlib.c:17:
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lauxlib.c: In function ‘luaL_addvalue’:
src/lua/lauxlib.c:623:13: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
623 | memcpy(b, s, len * sizeof(char));
| ^
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lauxlib.c: In function ‘getF’:
src/lua/lauxlib.c:726:9: warning: implicit declaration of function ‘feof’ [-Wimplicit-function-declaration]
726 | if (feof(lf->f)) return NULL;
| ^~~~
src/lua/lauxlib.c:727:13: warning: implicit declaration of function ‘fread’ [-Wimplicit-function-declaration]
727 | *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f); /* read block */
| ^~~~~
src/lua/lauxlib.c: In function ‘luaL_loadfilex’:
src/lua/lauxlib.c:788:12: warning: implicit declaration of function ‘fopen’ [-Wimplicit-function-declaration]
788 | lf.f = fopen(filename, "r");
| ^~~~~
src/lua/lauxlib.c:28:1: note: ‘fopen’ is defined in header ‘<stdio.h>’; did you forget to ‘#include <stdio.h>’?
27 | #include "lauxlib.h"
+++ |+#include <stdio.h>
28 |
src/lua/lauxlib.c:788:10: warning: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
788 | lf.f = fopen(filename, "r");
| ^
src/lua/lauxlib.c:794:12: warning: implicit declaration of function ‘freopen’ [-Wimplicit-function-declaration]
794 | lf.f = freopen(filename, "rb", lf.f); /* reopen in binary mode */
| ^~~~~~~
src/lua/lauxlib.c:794:10: warning: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
794 | lf.f = freopen(filename, "rb", lf.f); /* reopen in binary mode */
| ^
src/lua/lauxlib.c:801:16: warning: implicit declaration of function ‘ferror’; did you mean ‘interror’? [-Wimplicit-function-declaration]
801 | readstatus = ferror(lf.f);
| ^~~~~~
| interror
src/lua/lauxlib.c:802:17: warning: implicit declaration of function ‘fclose’; did you mean ‘false’? [-Wimplicit-function-declaration]
802 | if (filename) fclose(lf.f); /* close file (even in case of errors) */
| ^~~~~~
| false
src/lua/lauxlib.c: In function ‘l_alloc’:
src/lua/lauxlib.c:1013:5: warning: implicit declaration of function ‘free’ [-Wimplicit-function-declaration]
1013 | free(ptr);
| ^~~~
src/lua/lauxlib.c:28:1: note: ‘free’ is defined in header ‘<stdlib.h>’; did you forget to ‘#include <stdlib.h>’?
27 | #include "lauxlib.h"
+++ |+#include <stdlib.h>
28 |
src/lua/lauxlib.c:1017:12: warning: implicit declaration of function ‘realloc’ [-Wimplicit-function-declaration]
1017 | return realloc(ptr, nsize);
| ^~~~~~~
src/lua/lauxlib.c:1017:12: note: ‘realloc’ is defined in header ‘<stdlib.h>’; did you forget to ‘#include <stdlib.h>’?
src/lua/lauxlib.c:1017:12: warning: returning ‘int’ from a function with return type ‘void *’ makes pointer from integer without a cast [-Wint-conversion]
1017 | return realloc(ptr, nsize);
| ^~~~~~~~~~~~~~~~~~~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lcorolib.c -o build/lua/lcorolib.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lgc.c -o build/lua/lgc.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lfunc.c -o build/lua/lfunc.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lvm.c -o build/lua/lvm.o
In file included from src/openlibm/include/openlibm.h:6,
from src/klibc/math.h:7,
from src/lua/lvm.c:14:
src/openlibm/include/openlibm_math.h:70: warning: "HUGE_VAL" redefined
70 | #define HUGE_VAL __builtin_huge_val()
|
src/klibc/math.h:6: note: this is the location of the previous definition
6 | #define HUGE_VAL 1e10000
|
src/lua/lvm.c: In function ‘l_strcmp’:
src/lua/lvm.c:381:16: warning: implicit declaration of function ‘strcoll’ [-Wimplicit-function-declaration]
381 | int temp = strcoll(l, r);
| ^~~~~~~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lmathlib.c -o build/lua/lmathlib.o
In file included from src/openlibm/include/openlibm.h:6,
from src/klibc/math.h:7,
from src/lua/lmathlib.c:15:
src/openlibm/include/openlibm_math.h:70: warning: "HUGE_VAL" redefined
70 | #define HUGE_VAL __builtin_huge_val()
|
src/klibc/math.h:6: note: this is the location of the previous definition
6 | #define HUGE_VAL 1e10000
|
src/lua/lmathlib.c: In function ‘randseed’:
src/lua/lmathlib.c:612:38: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
612 | lua_Unsigned seed1 = (lua_Unsigned)time(NULL);
| ^~~~
src/lua/lmathlib.c:23:1: note: ‘time’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
22 | #include "lualib.h"
+++ |+#include <time.h>
23 |
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/ltm.c -o build/lua/ltm.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/ldblib.c -o build/lua/ldblib.o
src/lua/ldblib.c: In function ‘db_debug’:
src/lua/ldblib.c:424:9: warning: implicit declaration of function ‘fgets’; did you mean ‘fgetc’? [-Wimplicit-function-declaration]
424 | if (fgets(buffer, sizeof(buffer), stdin) == NULL ||
| ^~~~~
| fgetc
src/lua/ldblib.c:424:46: warning: comparison between pointer and integer
424 | if (fgets(buffer, sizeof(buffer), stdin) == NULL ||
| ^~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/ltablib.c -o build/lua/ltablib.o
src/lua/ltablib.c: In function ‘l_randomizePivot’:
src/lua/ltablib.c:246:15: warning: implicit declaration of function ‘clock’ [-Wimplicit-function-declaration]
246 | clock_t c = clock();
| ^~~~~
src/lua/ltablib.c:235:1: note: ‘clock’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
234 | #include <time.h>
+++ |+#include <time.h>
235 |
src/lua/ltablib.c:247:14: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
247 | time_t t = time(NULL);
| ^~~~
src/lua/ltablib.c:247:14: note: ‘time’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/liolib.c -o build/lua/liolib.o
src/lua/liolib.c: In function ‘io_fclose’:
src/lua/liolib.c:248:13: warning: implicit declaration of function ‘fclose’; did you mean ‘f_close’? [-Wimplicit-function-declaration]
248 | int res = fclose(p->f);
| ^~~~~~
| f_close
src/lua/liolib.c: In function ‘opencheck’:
src/lua/liolib.c:263:10: warning: implicit declaration of function ‘fopen’ [-Wimplicit-function-declaration]
263 | p->f = fopen(fname, mode);
| ^~~~~
src/lua/liolib.c:24:1: note: ‘fopen’ is defined in header ‘<stdio.h>’; did you forget to ‘#include <stdio.h>’?
23 | #include "lualib.h"
+++ |+#include <stdio.h>
24 |
src/lua/liolib.c:263:8: warning: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
263 | p->f = fopen(fname, mode);
| ^
src/lua/liolib.c: In function ‘io_open’:
src/lua/liolib.c:275:8: warning: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
275 | p->f = fopen(filename, mode);
| ^
src/lua/liolib.c: In function ‘io_tmpfile’:
src/lua/liolib.c:303:10: warning: implicit declaration of function ‘tmpfile’; did you mean ‘tofile’? [-Wimplicit-function-declaration]
303 | p->f = tmpfile();
| ^~~~~~~
| tofile
src/lua/liolib.c:303:8: warning: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
303 | p->f = tmpfile();
| ^
src/lua/liolib.c: In function ‘read_number’:
src/lua/liolib.c:499:3: warning: implicit declaration of function ‘ungetc’; did you mean ‘getc’? [-Wimplicit-function-declaration]
499 | ungetc(rn.c, rn.f); /* unread look-ahead char */
| ^~~~~~
| getc
src/lua/liolib.c: In function ‘read_all’:
src/lua/liolib.c:546:10: warning: implicit declaration of function ‘fread’ [-Wimplicit-function-declaration]
546 | nr = fread(p, sizeof(char), LUAL_BUFFERSIZE, f);
| ^~~~~
src/lua/liolib.c: In function ‘g_read’:
src/lua/liolib.c:569:3: warning: implicit declaration of function ‘clearerr’ [-Wimplicit-function-declaration]
569 | clearerr(f);
| ^~~~~~~~
src/lua/liolib.c:606:7: warning: implicit declaration of function ‘ferror’; did you mean ‘strerror’? [-Wimplicit-function-declaration]
606 | if (ferror(f))
| ^~~~~~
| strerror
src/lua/liolib.c: In function ‘f_seek’:
src/lua/liolib.c:137:33: warning: implicit declaration of function ‘fseek’; did you mean ‘f_seek’? [-Wimplicit-function-declaration]
137 | #define l_fseek(f,o,w) fseek(f,o,w)
| ^~~~~
src/lua/liolib.c:706:8: note: in expansion of macro ‘l_fseek’
706 | op = l_fseek(f, offset, mode[op]);
| ^~~~~~~
src/lua/liolib.c:138:33: warning: implicit declaration of function ‘ftell’; did you mean ‘l_ftell’? [-Wimplicit-function-declaration]
138 | #define l_ftell(f) ftell(f)
| ^~~~~
src/lua/liolib.c:710:37: note: in expansion of macro ‘l_ftell’
710 | lua_pushinteger(L, (lua_Integer)l_ftell(f));
| ^~~~~~~
src/lua/liolib.c: In function ‘f_setvbuf’:
src/lua/liolib.c:722:13: warning: implicit declaration of function ‘setvbuf’; did you mean ‘f_setvbuf’? [-Wimplicit-function-declaration]
722 | int res = setvbuf(f, NULL, mode[op], (size_t)sz);
| ^~~~~~~
| f_setvbuf
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lcode.c -o build/lua/lcode.o
In file included from src/openlibm/include/openlibm.h:6,
from src/klibc/math.h:7,
from src/lua/lcode.c:14:
src/openlibm/include/openlibm_math.h:70: warning: "HUGE_VAL" redefined
70 | #define HUGE_VAL __builtin_huge_val()
|
src/klibc/math.h:6: note: this is the location of the previous definition
6 | #define HUGE_VAL 1e10000
|
src/lua/lcode.c: In function ‘savelineinfo’:
src/lua/lcode.c:331:7: warning: implicit declaration of function ‘abs’; did you mean ‘fabs’? [-Wimplicit-function-declaration]
331 | if (abs(linedif) >= LIMLINEDIFF || fs->iwthabs++ >= MAXIWTHABS) {
| ^~~
| fabs
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lzio.c -o build/lua/lzio.o
src/lua/lzio.c: In function ‘luaZ_read’:
src/lua/lzio.c:60:16: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
60 | memcpy(b, z->p, m);
| ~^~~
In file included from src/lua/lzio.c:13:
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/ltable.c -o build/lua/ltable.o
In file included from src/openlibm/include/openlibm.h:6,
from src/klibc/math.h:7,
from src/lua/ltable.c:26:
src/openlibm/include/openlibm_math.h:70: warning: "HUGE_VAL" redefined
70 | #define HUGE_VAL __builtin_huge_val()
|
src/klibc/math.h:6: note: this is the location of the previous definition
6 | #define HUGE_VAL 1e10000
|
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lparser.c -o build/lua/lparser.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lstring.c -o build/lua/lstring.o
src/lua/lstring.c: In function ‘internshrstr’:
src/lua/lstring.c:209:22: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
209 | memcpy(getstr(ts), str, l * sizeof(char));
| ^~~
In file included from src/lua/lstring.c:13:
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lstring.c: In function ‘luaS_newlstr’:
src/lua/lstring.c:229:24: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
229 | memcpy(getstr(ts), str, l * sizeof(char));
| ^~~
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/llex.c -o build/lua/llex.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/loslib.c -o build/lua/loslib.o
src/lua/loslib.c: In function ‘os_execute’:
src/lua/loslib.c:146:10: warning: implicit declaration of function ‘system’ [-Wimplicit-function-declaration]
146 | stat = system(cmd);
| ^~~~~~
src/lua/loslib.c: In function ‘os_remove’:
src/lua/loslib.c:158:29: warning: implicit declaration of function ‘remove’; did you mean ‘os_remove’? [-Wimplicit-function-declaration]
158 | return luaL_fileresult(L, remove(filename) == 0, filename);
| ^~~~~~
| os_remove
src/lua/loslib.c: In function ‘os_rename’:
src/lua/loslib.c:165:29: warning: implicit declaration of function ‘rename’; did you mean ‘os_rename’? [-Wimplicit-function-declaration]
165 | return luaL_fileresult(L, rename(fromname, toname) == 0, NULL);
| ^~~~~~
| os_rename
src/lua/loslib.c: In function ‘os_tmpname’:
src/lua/loslib.c:133:40: warning: implicit declaration of function ‘tmpnam’; did you mean ‘L_tmpnam’? [-Wimplicit-function-declaration]
133 | #define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); }
| ^~~~~~
src/lua/loslib.c:172:3: note: in expansion of macro ‘lua_tmpnam’
172 | lua_tmpnam(buff, err);
| ^~~~~~~~~~
src/lua/loslib.c:133:50: warning: comparison between pointer and integer
133 | #define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); }
| ^~
src/lua/loslib.c:172:3: note: in expansion of macro ‘lua_tmpnam’
172 | lua_tmpnam(buff, err);
| ^~~~~~~~~~
src/lua/loslib.c: In function ‘os_getenv’:
src/lua/loslib.c:181:21: warning: implicit declaration of function ‘getenv’ [-Wimplicit-function-declaration]
181 | lua_pushstring(L, getenv(luaL_checkstring(L, 1))); /* if NULL push nil */
| ^~~~~~
src/lua/loslib.c:23:1: note: ‘getenv’ is defined in header ‘<stdlib.h>’; did you forget to ‘#include <stdlib.h>’?
22 | #include "lualib.h"
+++ |+#include <stdlib.h>
23 |
src/lua/loslib.c:181:21: warning: passing argument 2 of ‘lua_pushstring’ makes pointer from integer without a cast [-Wint-conversion]
181 | lua_pushstring(L, getenv(luaL_checkstring(L, 1))); /* if NULL push nil */
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
In file included from src/lua/loslib.c:19:
src/lua/lua.h:237:65: note: expected ‘const char *’ but argument is of type ‘int’
237 | LUA_API const char *(lua_pushstring) (lua_State *L, const char *s);
| ~~~~~~~~~~~~^
src/lua/loslib.c: In function ‘os_clock’:
src/lua/loslib.c:187:34: warning: implicit declaration of function ‘clock’ [-Wimplicit-function-declaration]
187 | lua_pushnumber(L, ((lua_Number)clock())/(lua_Number)CLOCKS_PER_SEC);
| ^~~~~
src/lua/loslib.c:23:1: note: ‘clock’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
22 | #include "lualib.h"
+++ |+#include <time.h>
23 |
src/lua/loslib.c: In function ‘checkoption’:
src/lua/loslib.c:282:20: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
282 | memcpy(buff, conv, oplen); /* copy valid option to buffer */
| ^~~~
In file included from src/lua/loslib.c:16:
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
In file included from src/lua/loslib.c:21:
src/lua/loslib.c: In function ‘os_date’:
src/lua/loslib.c:307:42: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
307 | time_t t = luaL_opt(L, l_checktime, 2, time(NULL));
| ^~~~
src/lua/lauxlib.h:152:60: note: in definition of macro ‘luaL_opt’
152 | #define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
| ^
src/lua/loslib.c:307:42: note: ‘time’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
307 | time_t t = luaL_opt(L, l_checktime, 2, time(NULL));
| ^~~~
src/lua/lauxlib.h:152:60: note: in definition of macro ‘luaL_opt’
152 | #define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
| ^
src/lua/loslib.c:94:53: warning: implicit declaration of function ‘gmtime’ [-Wimplicit-function-declaration]
94 | #define l_gmtime(t,r) ((void)(r)->tm_sec, gmtime(t))
| ^~~~~~
src/lua/loslib.c:311:11: note: in expansion of macro ‘l_gmtime’
311 | stm = l_gmtime(&t, &tmr);
| ^~~~~~~~
src/lua/loslib.c:94:53: note: ‘gmtime’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
94 | #define l_gmtime(t,r) ((void)(r)->tm_sec, gmtime(t))
| ^~~~~~
src/lua/loslib.c:311:11: note: in expansion of macro ‘l_gmtime’
311 | stm = l_gmtime(&t, &tmr);
| ^~~~~~~~
src/lua/loslib.c:311:9: warning: assignment to ‘struct tm *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
311 | stm = l_gmtime(&t, &tmr);
| ^
src/lua/loslib.c:95:53: warning: implicit declaration of function ‘localtime’ [-Wimplicit-function-declaration]
95 | #define l_localtime(t,r) ((void)(r)->tm_sec, localtime(t))
| ^~~~~~~~~
src/lua/loslib.c:315:11: note: in expansion of macro ‘l_localtime’
315 | stm = l_localtime(&t, &tmr);
| ^~~~~~~~~~~
src/lua/loslib.c:95:53: note: ‘localtime’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
95 | #define l_localtime(t,r) ((void)(r)->tm_sec, localtime(t))
| ^~~~~~~~~
src/lua/loslib.c:315:11: note: in expansion of macro ‘l_localtime’
315 | stm = l_localtime(&t, &tmr);
| ^~~~~~~~~~~
src/lua/loslib.c:315:9: warning: assignment to ‘struct tm *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
315 | stm = l_localtime(&t, &tmr);
| ^
src/lua/loslib.c:336:18: warning: implicit declaration of function ‘strftime’ [-Wimplicit-function-declaration]
336 | reslen = strftime(buff, SIZETIMEFMT, cc, stm);
| ^~~~~~~~
src/lua/loslib.c:336:18: note: ‘strftime’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
src/lua/loslib.c: In function ‘os_time’:
src/lua/loslib.c:361:9: warning: implicit declaration of function ‘mktime’ [-Wimplicit-function-declaration]
361 | t = mktime(&ts);
| ^~~~~~
src/lua/loslib.c:361:9: note: ‘mktime’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
src/lua/loslib.c: In function ‘os_difftime’:
src/lua/loslib.c:375:33: warning: implicit declaration of function ‘difftime’ [-Wimplicit-function-declaration]
375 | lua_pushnumber(L, (lua_Number)difftime(t1, t2));
| ^~~~~~~~
src/lua/loslib.c:375:33: note: ‘difftime’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
src/lua/loslib.c: In function ‘os_setlocale’:
src/lua/loslib.c:389:21: warning: implicit declaration of function ‘setlocale’; did you mean ‘os_setlocale’? [-Wimplicit-function-declaration]
389 | lua_pushstring(L, setlocale(cat[op], l));
| ^~~~~~~~~
| os_setlocale
src/lua/loslib.c:389:21: warning: passing argument 2 of ‘lua_pushstring’ makes pointer from integer without a cast [-Wint-conversion]
389 | lua_pushstring(L, setlocale(cat[op], l));
| ^~~~~~~~~~~~~~~~~~~~~
| |
| int
src/lua/lua.h:237:65: note: expected ‘const char *’ but argument is of type ‘int’
237 | LUA_API const char *(lua_pushstring) (lua_State *L, const char *s);
| ~~~~~~~~~~~~^
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lobject.c -o build/lua/lobject.o
In file included from src/openlibm/include/openlibm.h:6,
from src/klibc/math.h:7,
from src/lua/lobject.c:14:
src/openlibm/include/openlibm_math.h:70: warning: "HUGE_VAL" redefined
70 | #define HUGE_VAL __builtin_huge_val()
|
src/klibc/math.h:6: note: this is the location of the previous definition
6 | #define HUGE_VAL 1e10000
|
In file included from src/lua/lua.h:16,
from src/lua/lobject.c:20:
src/lua/lobject.c: In function ‘l_str2dloc’:
src/lua/luaconf.h:632:46: warning: implicit declaration of function ‘strtod’ [-Wimplicit-function-declaration]
632 | #define lua_str2number(s,p) ((lua_Number)strtod((s), (p)))
| ^~~~~~
src/lua/lobject.c:231:29: note: in expansion of macro ‘lua_str2number’
231 | : lua_str2number(s, &endptr);
| ^~~~~~~~~~~~~~
src/lua/lobject.c: In function ‘addstr2buff’:
src/lua/lobject.c:446:16: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
446 | memcpy(bf, str, slen); /* add string to buffer */
| ^~~
In file included from src/lua/lobject.c:18:
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lobject.c: In function ‘luaO_chunkid’:
src/lua/lobject.c:561:26: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
561 | memcpy(out, source + 1, srclen * sizeof(char));
| ~~~~~~~^~~
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lobject.c:563:26: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
563 | addstr(out, source + 1, bufflen - 1);
| ~~~~~~~^~~
src/lua/lobject.c:555:36: note: in definition of macro ‘addstr’
555 | #define addstr(a,b,l) ( memcpy(a,b,(l) * sizeof(char)), a += (l) )
| ^
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lobject.c:569:26: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
569 | memcpy(out, source + 1, srclen * sizeof(char));
| ~~~~~~~^~~
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lobject.c:573:39: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
573 | memcpy(out, source + 1 + srclen - bufflen, bufflen * sizeof(char));
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lobject.c:581:19: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
581 | addstr(out, source, srclen); /* keep it */
| ^~~~~~
src/lua/lobject.c:555:36: note: in definition of macro ‘addstr’
555 | #define addstr(a,b,l) ( memcpy(a,b,(l) * sizeof(char)), a += (l) )
| ^
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lobject.c:586:19: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
586 | addstr(out, source, srclen);
| ^~~~~~
src/lua/lobject.c:555:36: note: in definition of macro ‘addstr’
555 | #define addstr(a,b,l) ( memcpy(a,b,(l) * sizeof(char)), a += (l) )
| ^
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lundump.c -o build/lua/lundump.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lbaselib.c -o build/lua/lbaselib.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lstrlib.c -o build/lua/lstrlib.o
In file included from src/openlibm/include/openlibm.h:6,
from src/klibc/math.h:7,
from src/lua/lstrlib.c:17:
src/openlibm/include/openlibm_math.h:70: warning: "HUGE_VAL" redefined
70 | #define HUGE_VAL __builtin_huge_val()
|
src/klibc/math.h:6: note: this is the location of the previous definition
6 | #define HUGE_VAL 1e10000
|
src/lua/lstrlib.c: In function ‘str_rep’:
src/lua/lstrlib.c:164:17: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
164 | memcpy(p, s, l * sizeof(char)); p += l;
| ^
In file included from src/lua/lstrlib.c:21:
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lstrlib.c:166:19: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
166 | memcpy(p, sep, lsep * sizeof(char));
| ^~~
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lstrlib.c:170:15: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
170 | memcpy(p, s, l * sizeof(char)); /* last copy (not followed by separator) */
| ^
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lstrlib.c: In function ‘scanformat’:
src/lua/lstrlib.c:1207:16: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
1207 | memcpy(form, strfrmt, ((p - strfrmt) + 1) * sizeof(char));
| ^~~~~~~
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
src/lua/lstrlib.c: In function ‘copywithendian’:
src/lua/lstrlib.c:1535:18: warning: passing argument 2 of ‘memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
1535 | memcpy(dest, src, size);
| ^~~
src/klibc/string.h:7:32: note: expected ‘void *’ but argument is of type ‘const char *’
7 | void memcpy(void* _dest, void* _src, size_t n);
| ~~~~~~^~~~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lstate.c -o build/lua/lstate.o
In file included from src/lua/lapi.h:11,
from src/lua/lstate.c:18:
src/lua/lstate.c: In function ‘luai_makeseed’:
src/lua/lstate.c:73:30: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
73 | unsigned int h = cast_uint(time(NULL));
| ^~~~
src/lua/llimits.h:123:30: note: in definition of macro ‘cast’
123 | #define cast(t, exp) ((t)(exp))
| ^~~
src/lua/lstate.c:73:20: note: in expansion of macro ‘cast_uint’
73 | unsigned int h = cast_uint(time(NULL));
| ^~~~~~~~~
src/lua/lstate.c:61:1: note: ‘time’ is defined in header ‘<time.h>’; did you forget to ‘#include <time.h>’?
60 | #include <time.h>
+++ |+#include <time.h>
61 |
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lctype.c -o build/lua/lctype.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/linit.c -o build/lua/linit.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lua.c -o build/lua/lua.o
src/lua/lua.c: In function ‘laction’:
src/lua/lua.c:55:30: warning: implicit declaration of function ‘signal’; did you mean ‘signal_h’? [-Wimplicit-function-declaration]
55 | #define setsignal signal
| ^~~~~~
src/lua/lua.c:78:3: note: in expansion of macro ‘setsignal’
78 | setsignal(i, SIG_DFL); /* if another SIGINT happens, terminate process */
| ^~~~~~~~~
src/lua/lua.c: In function ‘handle_luainit’:
src/lua/lua.c:350:22: warning: implicit declaration of function ‘getenv’ [-Wimplicit-function-declaration]
350 | const char *init = getenv(name + 1);
| ^~~~~~
src/lua/lua.c:22:1: note: ‘getenv’ is defined in header ‘<stdlib.h>’; did you forget to ‘#include <stdlib.h>’?
21 | #include "lualib.h"
+++ |+#include <stdlib.h>
22 |
src/lua/lua.c:350:22: warning: initialization of ‘const char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
350 | const char *init = getenv(name + 1);
| ^~~~~~
src/lua/lua.c:353:10: warning: assignment to ‘const char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
353 | init = getenv(name + 1); /* try alternative name */
| ^
src/lua/lua.c: In function ‘pushline’:
src/lua/lua.c:428:19: warning: implicit declaration of function ‘fputs’ [-Wimplicit-function-declaration]
428 | ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \
| ^~~~~
src/lua/lua.c:484:20: note: in expansion of macro ‘lua_readline’
484 | int readstatus = lua_readline(L, b, prmt);
| ^~~~~~~~~~~~
src/lua/lua.c:429:9: warning: implicit declaration of function ‘fgets’; did you mean ‘fgetc’? [-Wimplicit-function-declaration]
429 | fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */
| ^~~~~
src/lua/lua.c:484:20: note: in expansion of macro ‘lua_readline’
484 | int readstatus = lua_readline(L, b, prmt);
| ^~~~~~~~~~~~
src/lua/lua.c:429:39: warning: comparison between pointer and integer
429 | fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */
| ^~
src/lua/lua.c:484:20: note: in expansion of macro ‘lua_readline’
484 | int readstatus = lua_readline(L, b, prmt);
| ^~~~~~~~~~~~
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/ldump.c -o build/lua/ldump.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lutf8lib.c -o build/lua/lutf8lib.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/lopcodes.c -o build/lua/lopcodes.o
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/luac.c -o build/lua/luac.o
src/lua/luac.c: In function ‘pmain’:
src/lua/luac.c:186:38: warning: implicit declaration of function ‘fopen’ [-Wimplicit-function-declaration]
186 | FILE* D= (output==NULL) ? stdout : fopen(output,"wb");
| ^~~~~
src/lua/luac.c:27:1: note: ‘fopen’ is defined in header ‘<stdio.h>’; did you forget to ‘#include <stdio.h>’?
26 | #include "lundump.h"
+++ |+#include <stdio.h>
27 |
src/lua/luac.c:186:36: warning: pointer/integer type mismatch in conditional expression
186 | FILE* D= (output==NULL) ? stdout : fopen(output,"wb");
| ^
src/lua/luac.c:191:7: warning: implicit declaration of function ‘ferror’; did you mean ‘strerror’? [-Wimplicit-function-declaration]
191 | if (ferror(D)) cannot("write");
| ^~~~~~
| strerror
src/lua/luac.c:192:7: warning: implicit declaration of function ‘fclose’; did you mean ‘false’? [-Wimplicit-function-declaration]
192 | if (fclose(D)) cannot("close");
| ^~~~~~
| false
mkdir -p build/lua/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -DLUA_USE_C89 -ffreestanding src/lua/loadlib.c -o build/lua/loadlib.o
src/lua/loadlib.c: In function ‘setpath’:
src/lua/loadlib.c:302:22: warning: implicit declaration of function ‘getenv’ [-Wimplicit-function-declaration]
302 | const char *path = getenv(nver); /* try versioned name */
| ^~~~~~
src/lua/loadlib.c:25:1: note: ‘getenv’ is defined in header ‘<stdlib.h>’; did you forget to ‘#include <stdlib.h>’?
24 | #include "lualib.h"
+++ |+#include <stdlib.h>
25 |
src/lua/loadlib.c:302:22: warning: initialization of ‘const char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
302 | const char *path = getenv(nver); /* try versioned name */
| ^~~~~~
src/lua/loadlib.c:304:10: warning: assignment to ‘const char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
304 | path = getenv(envname); /* try unversioned name */
| ^
src/lua/loadlib.c: In function ‘readable’:
src/lua/loadlib.c:435:13: warning: implicit declaration of function ‘fopen’ [-Wimplicit-function-declaration]
435 | FILE *f = fopen(filename, "r"); /* try to open file */
| ^~~~~
src/lua/loadlib.c:25:1: note: ‘fopen’ is defined in header ‘<stdio.h>’; did you forget to ‘#include <stdio.h>’?
24 | #include "lualib.h"
+++ |+#include <stdio.h>
25 |
src/lua/loadlib.c:435:13: warning: initialization of ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
435 | FILE *f = fopen(filename, "r"); /* try to open file */
| ^~~~~
src/lua/loadlib.c:437:3: warning: implicit declaration of function ‘fclose’; did you mean ‘false’? [-Wimplicit-function-declaration]
437 | fclose(f);
| ^~~~~~
| false
mkdir -p build/klibc/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/klibc/stdlib.c -o build/klibc/stdlib.o
mkdir -p build/klibc/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/klibc/ctype.c -o build/klibc/ctype.o
mkdir -p build/klibc/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/klibc/stdio.c -o build/klibc/stdio.o
src/klibc/stdio.c: In function ‘printf’:
src/klibc/stdio.c:16:19: warning: passing argument 1 of ‘console_print’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
16 | console_print(format);
| ^~~~~~
In file included from src/klibc/stdio.c:3:
src/klibc/../console.h:12:26: note: expected ‘char *’ but argument is of type ‘const char *’
12 | void console_print(char* string);
| ~~~~~~^~~~~~
mkdir -p build/klibc/ && \
gcc -c -nostdinc -I src/klibc/ -I src/openlibm/include -ffreestanding src/klibc/string.c -o build/klibc/string.o
src/klibc/string.c: In function ‘strchr’:
src/klibc/string.c:27:16: warning: return discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
27 | return s;
| ^
mkdir -p dist/x86_64 && \
ld -melf_x86_64 -n -o dist/x86_64/kiwikernel.bin -T targets/x86_64/linker.ld build/kernel/main.o build/kernel/console.o build/x86_64/io.o build/x86_64/console.o build/x86_64/boot/main.o build/x86_64/boot/header.o build/x86_64/boot/main64.o build/lua/lmem.o build/lua/ldebug.o build/lua/lapi.o build/lua/ldo.o build/lua/lauxlib.o build/lua/lcorolib.o build/lua/lgc.o build/lua/lfunc.o build/lua/lvm.o build/lua/lmathlib.o build/lua/ltm.o build/lua/ldblib.o build/lua/ltablib.o build/lua/liolib.o build/lua/lcode.o build/lua/lzio.o build/lua/ltable.o build/lua/lparser.o build/lua/lstring.o build/lua/llex.o build/lua/loslib.o build/lua/lobject.o build/lua/lundump.o build/lua/lbaselib.o build/lua/lstrlib.o build/lua/lstate.o build/lua/lctype.o build/lua/linit.o build/lua/lua.o build/lua/ldump.o build/lua/lutf8lib.o build/lua/lopcodes.o build/lua/luac.o build/lua/loadlib.o build/klibc/stdlib.o build/klibc/ctype.o build/klibc/stdio.o build/klibc/string.o && \
cp dist/x86_64/kiwikernel.bin targets/x86_64/iso/boot/kiwikernel.bin && \
grub-mkrescue /usr/lib/grub/i386-pc -o dist/x86_64/kiwikernel.iso targets/x86_64/iso
ld : build/lua/luac.o : dans la fonction « main » :
luac.c:(.text+0x895) : définitions multiples de « main »; build/lua/lua.o:lua.c:(.text+0x1464) : défini pour la première fois ici
ld: attention: build/x86_64/boot/main64.o: l'absence de la section .note.GNU-stack implique une pile exécutable
ld: NOTE: Ce comportement est déprécié et sera supprimé dans une version ultérieure de l'éditeur de liens
ld: attention: dist/x86_64/kiwikernel.bin a un segment LOAD avec les permissions RWX
ld : build/lua/ldo.o : dans la fonction « luaD_throw » :
ldo.c:(.text+0x150) : référence indéfinie vers « longjmp »
ld : build/lua/ldo.o : dans la fonction « luaD_rawrunprotected » :
ldo.c:(.text+0x26a) : référence indéfinie vers « setjmp »
ld : build/lua/lauxlib.o : dans la fonction « luaL_fileresult » :
lauxlib.c:(.text+0xab9) : référence indéfinie vers « errno »
ld : build/lua/lauxlib.o : dans la fonction « luaL_execresult » :
lauxlib.c:(.text+0xb6b) : référence indéfinie vers « errno »
ld : build/lua/lauxlib.o : dans la fonction « getF » :
lauxlib.c:(.text+0x1a24) : référence indéfinie vers « feof »
ld : lauxlib.c:(.text+0x1a56) : référence indéfinie vers « fread »
ld : build/lua/lauxlib.o : dans la fonction « errfile » :
lauxlib.c:(.text+0x1a83) : référence indéfinie vers « errno »
ld : build/lua/lauxlib.o : dans la fonction « luaL_loadfilex » :
lauxlib.c:(.text+0x1cbb) : référence indéfinie vers « fopen »
ld : lauxlib.c:(.text+0x1d68) : référence indéfinie vers « freopen »
ld : lauxlib.c:(.text+0x1e3c) : référence indéfinie vers « ferror »
ld : lauxlib.c:(.text+0x1e5d) : référence indéfinie vers « fclose »
ld : build/lua/lauxlib.o : dans la fonction « l_alloc » :
lauxlib.c:(.text+0x27c4) : référence indéfinie vers « free »
ld : lauxlib.c:(.text+0x27e3) : référence indéfinie vers « realloc »
ld : build/lua/lvm.o : dans la fonction « luaV_flttointeger » :
lvm.c:(.text+0x126) : référence indéfinie vers « floor »
ld : build/lua/lvm.o : dans la fonction « l_strcmp » :
lvm.c:(.text+0xcf1) : référence indéfinie vers « strcoll »
ld : build/lua/lvm.o : dans la fonction « luaV_modf » :
lvm.c:(.text+0x1ea5) : référence indéfinie vers « fmod »
ld : build/lua/lvm.o : dans la fonction « luaV_execute » :
lvm.c:(.text+0x50ce) : référence indéfinie vers « pow »
ld : lvm.c:(.text+0x54fb) : référence indéfinie vers « floor »
ld : lvm.c:(.text+0x671a) : référence indéfinie vers « pow »
ld : lvm.c:(.text+0x6b41) : référence indéfinie vers « floor »
ld : build/lua/lmathlib.o : dans la fonction « math_abs » :
lmathlib.c:(.text+0x7e) : référence indéfinie vers « fabs »
ld : build/lua/lmathlib.o : dans la fonction « math_sin » :
lmathlib.c:(.text+0xc7) : référence indéfinie vers « sin »
ld : build/lua/lmathlib.o : dans la fonction « math_cos » :
lmathlib.c:(.text+0x110) : référence indéfinie vers « cos »
ld : build/lua/lmathlib.o : dans la fonction « math_tan » :
lmathlib.c:(.text+0x159) : référence indéfinie vers « tan »
ld : build/lua/lmathlib.o : dans la fonction « math_asin » :
lmathlib.c:(.text+0x1a2) : référence indéfinie vers « asin »
ld : build/lua/lmathlib.o : dans la fonction « math_acos » :
lmathlib.c:(.text+0x1eb) : référence indéfinie vers « acos »
ld : build/lua/lmathlib.o : dans la fonction « math_atan » :
lmathlib.c:(.text+0x26b) : référence indéfinie vers « atan2 »
ld : build/lua/lmathlib.o : dans la fonction « math_floor » :
lmathlib.c:(.text+0x3b5) : référence indéfinie vers « floor »
ld : build/lua/lmathlib.o : dans la fonction « math_ceil » :
lmathlib.c:(.text+0x42e) : référence indéfinie vers « ceil »
ld : build/lua/lmathlib.o : dans la fonction « math_fmod » :
lmathlib.c:(.text+0x55f) : référence indéfinie vers « fmod »
ld : build/lua/lmathlib.o : dans la fonction « math_modf » :
lmathlib.c:(.text+0x602) : référence indéfinie vers « ceil »
ld : lmathlib.c:(.text+0x617) : référence indéfinie vers « floor »
ld : build/lua/lmathlib.o : dans la fonction « math_sqrt » :
lmathlib.c:(.text+0x6a9) : référence indéfinie vers « sqrt »
ld : build/lua/lmathlib.o : dans la fonction « math_log » :
lmathlib.c:(.text+0x76c) : référence indéfinie vers « log »
ld : lmathlib.c:(.text+0x7c0) : référence indéfinie vers « log10 »
ld : lmathlib.c:(.text+0x7d9) : référence indéfinie vers « log »
ld : lmathlib.c:(.text+0x7ec) : référence indéfinie vers « log »
ld : build/lua/lmathlib.o : dans la fonction « math_exp » :
lmathlib.c:(.text+0x84a) : référence indéfinie vers « exp »
ld : build/lua/lmathlib.o : dans la fonction « randseed » :
lmathlib.c:(.text+0x11b0) : référence indéfinie vers « time »
ld : build/lua/ldblib.o : dans la fonction « db_debug » :
ldblib.c:(.text+0x138f) : référence indéfinie vers « fgets »
ld : build/lua/ltablib.o : dans la fonction « l_randomizePivot » :
ltablib.c:(.text+0x969) : référence indéfinie vers « clock »
ld : ltablib.c:(.text+0x97e) : référence indéfinie vers « time »
ld : build/lua/liolib.o : dans la fonction « io_fclose » :
liolib.c:(.text+0x38b) : référence indéfinie vers « fclose »
ld : build/lua/liolib.o : dans la fonction « opencheck » :
liolib.c:(.text+0x425) : référence indéfinie vers « fopen »
ld : liolib.c:(.text+0x44c) : référence indéfinie vers « errno »
ld : build/lua/liolib.o : dans la fonction « io_open » :
liolib.c:(.text+0x51f) : référence indéfinie vers « fopen »
ld : build/lua/liolib.o : dans la fonction « io_pclose » :
liolib.c:(.text+0x583) : référence indéfinie vers « errno »
ld : build/lua/liolib.o : dans la fonction « io_tmpfile » :
liolib.c:(.text+0x6ce) : référence indéfinie vers « tmpfile »
ld : build/lua/liolib.o : dans la fonction « read_number » :
liolib.c:(.text+0xc24) : référence indéfinie vers « localeconv »
ld : liolib.c:(.text+0xd86) : référence indéfinie vers « ungetc »
ld : build/lua/liolib.o : dans la fonction « test_eof » :
liolib.c:(.text+0xe13) : référence indéfinie vers « ungetc »
ld : build/lua/liolib.o : dans la fonction « read_all » :
liolib.c:(.text+0xff8) : référence indéfinie vers « fread »
ld : build/lua/liolib.o : dans la fonction « read_chars » :
liolib.c:(.text+0x10a9) : référence indéfinie vers « fread »
ld : build/lua/liolib.o : dans la fonction « g_read » :
liolib.c:(.text+0x1116) : référence indéfinie vers « clearerr »
ld : liolib.c:(.text+0x12e4) : référence indéfinie vers « ferror »
ld : build/lua/liolib.o : dans la fonction « f_seek » :
liolib.c:(.text+0x17e8) : référence indéfinie vers « fseek »
ld : liolib.c:(.text+0x1823) : référence indéfinie vers « ftell »
ld : build/lua/liolib.o : dans la fonction « f_setvbuf » :
liolib.c:(.text+0x18c6) : référence indéfinie vers « setvbuf »
ld : build/lua/lcode.o : dans la fonction « savelineinfo » :
lcode.c:(.text+0x82e) : référence indéfinie vers « abs »
ld : build/lua/ltable.o : dans la fonction « l_hashfloat » :
ltable.c:(.text+0x1e) : référence indéfinie vers « frexp »
ld : build/lua/loslib.o : dans la fonction « os_execute » :
loslib.c:(.text+0x2d) : référence indéfinie vers « errno »
ld : loslib.c:(.text+0x42) : référence indéfinie vers « system »
ld : build/lua/loslib.o : dans la fonction « os_remove » :
loslib.c:(.text+0xae) : référence indéfinie vers « remove »
ld : build/lua/loslib.o : dans la fonction « os_rename » :
loslib.c:(.text+0x122) : référence indéfinie vers « rename »
ld : build/lua/loslib.o : dans la fonction « os_tmpname » :
loslib.c:(.text+0x15c) : référence indéfinie vers « tmpnam »
ld : build/lua/loslib.o : dans la fonction « os_getenv » :
loslib.c:(.text+0x1dc) : référence indéfinie vers « getenv »
ld : build/lua/loslib.o : dans la fonction « os_clock » :
loslib.c:(.text+0x20d) : référence indéfinie vers « clock »
ld : build/lua/loslib.o : dans la fonction « os_date » :
loslib.c:(.text+0x6f5) : référence indéfinie vers « time »
ld : loslib.c:(.text+0x73c) : référence indéfinie vers « gmtime »
ld : loslib.c:(.text+0x75a) : référence indéfinie vers « localtime »
ld : loslib.c:(.text+0x8c0) : référence indéfinie vers « strftime »
ld : build/lua/loslib.o : dans la fonction « os_time » :
loslib.c:(.text+0x92f) : référence indéfinie vers « time »
ld : loslib.c:(.text+0xa4b) : référence indéfinie vers « mktime »
ld : build/lua/loslib.o : dans la fonction « os_difftime » :
loslib.c:(.text+0xaf0) : référence indéfinie vers « difftime »
ld : build/lua/loslib.o : dans la fonction « os_setlocale » :
loslib.c:(.text+0xb8f) : référence indéfinie vers « setlocale »
ld : build/lua/lobject.o : dans la fonction « numarith » :
lobject.c:(.text+0x234) : référence indéfinie vers « pow »
ld : lobject.c:(.text+0x254) : référence indéfinie vers « floor »
ld : build/lua/lobject.o : dans la fonction « lua_strx2number » :
lobject.c:(.text+0x6ab) : référence indéfinie vers « localeconv »
ld : lobject.c:(.text+0x959) : référence indéfinie vers « ldexp »
ld : build/lua/lobject.o : dans la fonction « l_str2dloc » :
lobject.c:(.text+0x9b0) : référence indéfinie vers « strtod »
ld : build/lua/lobject.o : dans la fonction « l_str2d » :
lobject.c:(.text+0xb0f) : référence indéfinie vers « localeconv »
ld : build/lua/lobject.o : dans la fonction « tostringbuff » :
lobject.c:(.text+0xf51) : référence indéfinie vers « localeconv »
ld : build/lua/lstrlib.o : dans la fonction « adddigit » :
lstrlib.c:(.text+0x280b) : référence indéfinie vers « floor »
ld : build/lua/lstrlib.o : dans la fonction « num2straux » :
lstrlib.c:(.text+0x2936) : référence indéfinie vers « frexp »
ld : lstrlib.c:(.text+0x29fe) : référence indéfinie vers « localeconv »
ld : build/lua/lstrlib.o : dans la fonction « quotefloat » :
lstrlib.c:(.text+0x2ea7) : référence indéfinie vers « localeconv »
ld : build/lua/lstate.o : dans la fonction « luai_makeseed » :
lstate.c:(.text+0x17) : référence indéfinie vers « time »
ld : build/lua/lua.o : dans la fonction « laction » :
lua.c:(.text+0x6b) : référence indéfinie vers « signal »
ld : build/lua/lua.o : dans la fonction « docall » :
lua.c:(.text+0x39e) : référence indéfinie vers « signal »
ld : lua.c:(.text+0x3d6) : référence indéfinie vers « signal »
ld : build/lua/lua.o : dans la fonction « handle_luainit » :
lua.c:(.text+0xbb1) : référence indéfinie vers « getenv »
ld : lua.c:(.text+0xbde) : référence indéfinie vers « getenv »
ld : build/lua/lua.o : dans la fonction « pushline » :
lua.c:(.text+0xd9b) : référence indéfinie vers « fputs »
ld : lua.c:(.text+0xdc7) : référence indéfinie vers « fgets »
ld : build/lua/luac.o : dans la fonction « cannot » :
luac.c:(.text+0x4d) : référence indéfinie vers « errno »
ld : build/lua/luac.o : dans la fonction « pmain » :
luac.c:(.text+0x7f6) : référence indéfinie vers « fopen »
ld : luac.c:(.text+0x853) : référence indéfinie vers « ferror »
ld : luac.c:(.text+0x877) : référence indéfinie vers « fclose »
ld : build/lua/loadlib.o : dans la fonction « setpath » :
loadlib.c:(.text+0x11b) : référence indéfinie vers « getenv »
ld : loadlib.c:(.text+0x13c) : référence indéfinie vers « getenv »
ld : build/lua/loadlib.o : dans la fonction « readable » :
loadlib.c:(.text+0x690) : référence indéfinie vers « fopen »
ld : loadlib.c:(.text+0x6b5) : référence indéfinie vers « fclose »
make: *** [Makefile:47 : build-x86_64] Erreur 1
Citer : Posté le 23/02/2023 14:58 | #
Oui côté libc y'a pas mal de travail à faire avant de pouvoir compiler des programmes non triviaux comme Lua.
Citer : Posté le 23/02/2023 15:02 | #
je vais amputer lua de plusieurs fonctionnalités non utiles.
dalleurs j'ai une question: quand je fais
klibc_object_files := $(patsubst src/klibc/%.c, build/klibc/%.o, $(klibc_source_files))
c'est quoi qui est enregistré: le résultat de la commande ou la commande (donc on peut encore ajouter des fichiers pour ld après);
Citer : Posté le 23/02/2023 15:54 | #
Comme c'est := la commande est exécutée immédiatement et le résultat est stocké.
Si tu mets klibc_object_files = (au lieu de :=) la "formule" de la variable est stockée et elle sera recalculée à chaque utilisation. Et alors, tu es libre de rajouter des fichiers source avec klibc_source_files += et ça se répercutera automatiquement sur klibc_object_files.
Citer : Posté le 23/02/2023 16:16 | #
ok merci. mais entre temps j'ai encore un autre problème apparemment un tas de fonctions mathématiques ne sont pas présentes sans openlibm alors que elles sont utilisés...
ld : build/lua/luac.o : dans la fonction « main » :
luac.c:(.text+0x895) : définitions multiples de « main »; build/lua/lua.o:lua.c:(.text+0x1464) : défini pour la première fois ici
ld: attention: build/x86_64/boot/main64.o: l'absence de la section .note.GNU-stack implique une pile exécutable
ld: NOTE: Ce comportement est déprécié et sera supprimé dans une version ultérieure de l'éditeur de liens
ld: attention: dist/x86_64/kiwikernel.bin a un segment LOAD avec les permissions RWX
ld : build/lua/ldo.o : dans la fonction « luaD_throw » :
ldo.c:(.text+0x150) : référence indéfinie vers « longjmp »
ld : build/lua/ldo.o : dans la fonction « luaD_rawrunprotected » :
ldo.c:(.text+0x26a) : référence indéfinie vers « setjmp »
ld : build/lua/lauxlib.o : dans la fonction « luaL_fileresult » :
lauxlib.c:(.text+0xab9) : référence indéfinie vers « errno »
ld : build/lua/lauxlib.o : dans la fonction « luaL_execresult » :
lauxlib.c:(.text+0xb6b) : référence indéfinie vers « errno »
ld : build/lua/lauxlib.o : dans la fonction « getF » :
lauxlib.c:(.text+0x1a24) : référence indéfinie vers « feof »
ld : lauxlib.c:(.text+0x1a56) : référence indéfinie vers « fread »
ld : build/lua/lauxlib.o : dans la fonction « errfile » :
lauxlib.c:(.text+0x1a83) : référence indéfinie vers « errno »
ld : build/lua/lauxlib.o : dans la fonction « luaL_loadfilex » :
lauxlib.c:(.text+0x1cbb) : référence indéfinie vers « fopen »
ld : lauxlib.c:(.text+0x1d68) : référence indéfinie vers « freopen »
ld : lauxlib.c:(.text+0x1e3c) : référence indéfinie vers « ferror »
ld : lauxlib.c:(.text+0x1e5d) : référence indéfinie vers « fclose »
ld : build/lua/lauxlib.o : dans la fonction « l_alloc » :
lauxlib.c:(.text+0x27c4) : référence indéfinie vers « free »
ld : lauxlib.c:(.text+0x27e3) : référence indéfinie vers « realloc »
ld : build/lua/lvm.o : dans la fonction « l_strcmp » :
lvm.c:(.text+0xcf1) : référence indéfinie vers « strcoll »
ld : build/lua/lmathlib.o : dans la fonction « randseed » :
lmathlib.c:(.text+0x11b0) : référence indéfinie vers « time »
ld : build/lua/ldblib.o : dans la fonction « db_debug » :
ldblib.c:(.text+0x138f) : référence indéfinie vers « fgets »
ld : build/lua/ltablib.o : dans la fonction « l_randomizePivot » :
ltablib.c:(.text+0x969) : référence indéfinie vers « clock »
ld : ltablib.c:(.text+0x97e) : référence indéfinie vers « time »
ld : build/lua/liolib.o : dans la fonction « io_fclose » :
liolib.c:(.text+0x38b) : référence indéfinie vers « fclose »
ld : build/lua/liolib.o : dans la fonction « opencheck » :
liolib.c:(.text+0x425) : référence indéfinie vers « fopen »
ld : liolib.c:(.text+0x44c) : référence indéfinie vers « errno »
ld : build/lua/liolib.o : dans la fonction « io_open » :
liolib.c:(.text+0x51f) : référence indéfinie vers « fopen »
ld : build/lua/liolib.o : dans la fonction « io_pclose » :
liolib.c:(.text+0x583) : référence indéfinie vers « errno »
ld : build/lua/liolib.o : dans la fonction « io_tmpfile » :
liolib.c:(.text+0x6ce) : référence indéfinie vers « tmpfile »
ld : build/lua/liolib.o : dans la fonction « read_number » :
liolib.c:(.text+0xc24) : référence indéfinie vers « localeconv »
ld : liolib.c:(.text+0xd86) : référence indéfinie vers « ungetc »
ld : build/lua/liolib.o : dans la fonction « test_eof » :
liolib.c:(.text+0xe13) : référence indéfinie vers « ungetc »
ld : build/lua/liolib.o : dans la fonction « read_all » :
liolib.c:(.text+0xff8) : référence indéfinie vers « fread »
ld : build/lua/liolib.o : dans la fonction « read_chars » :
liolib.c:(.text+0x10a9) : référence indéfinie vers « fread »
ld : build/lua/liolib.o : dans la fonction « g_read » :
liolib.c:(.text+0x1116) : référence indéfinie vers « clearerr »
ld : liolib.c:(.text+0x12e4) : référence indéfinie vers « ferror »
ld : build/lua/liolib.o : dans la fonction « f_seek » :
liolib.c:(.text+0x17e8) : référence indéfinie vers « fseek »
ld : liolib.c:(.text+0x1823) : référence indéfinie vers « ftell »
ld : build/lua/liolib.o : dans la fonction « f_setvbuf » :
liolib.c:(.text+0x18c6) : référence indéfinie vers « setvbuf »
ld : build/lua/lcode.o : dans la fonction « savelineinfo » :
lcode.c:(.text+0x82e) : référence indéfinie vers « abs »
ld : build/lua/loslib.o : dans la fonction « os_execute » :
loslib.c:(.text+0x2d) : référence indéfinie vers « errno »
ld : loslib.c:(.text+0x42) : référence indéfinie vers « system »
ld : build/lua/loslib.o : dans la fonction « os_remove » :
loslib.c:(.text+0xae) : référence indéfinie vers « remove »
ld : build/lua/loslib.o : dans la fonction « os_rename » :
loslib.c:(.text+0x122) : référence indéfinie vers « rename »
ld : build/lua/loslib.o : dans la fonction « os_tmpname » :
loslib.c:(.text+0x15c) : référence indéfinie vers « tmpnam »
ld : build/lua/loslib.o : dans la fonction « os_getenv » :
loslib.c:(.text+0x1dc) : référence indéfinie vers « getenv »
ld : build/lua/loslib.o : dans la fonction « os_clock » :
loslib.c:(.text+0x20d) : référence indéfinie vers « clock »
ld : build/lua/loslib.o : dans la fonction « os_date » :
loslib.c:(.text+0x6f5) : référence indéfinie vers « time »
ld : loslib.c:(.text+0x73c) : référence indéfinie vers « gmtime »
ld : loslib.c:(.text+0x75a) : référence indéfinie vers « localtime »
ld : loslib.c:(.text+0x8c0) : référence indéfinie vers « strftime »
ld : build/lua/loslib.o : dans la fonction « os_time » :
loslib.c:(.text+0x92f) : référence indéfinie vers « time »
ld : loslib.c:(.text+0xa4b) : référence indéfinie vers « mktime »
ld : build/lua/loslib.o : dans la fonction « os_difftime » :
loslib.c:(.text+0xaf0) : référence indéfinie vers « difftime »
ld : build/lua/loslib.o : dans la fonction « os_setlocale » :
loslib.c:(.text+0xb8f) : référence indéfinie vers « setlocale »
ld : build/lua/lobject.o : dans la fonction « lua_strx2number » :
lobject.c:(.text+0x6ab) : référence indéfinie vers « localeconv »
ld : build/lua/lobject.o : dans la fonction « l_str2dloc » :
lobject.c:(.text+0x9b0) : référence indéfinie vers « strtod »
ld : build/lua/lobject.o : dans la fonction « l_str2d » :
lobject.c:(.text+0xb0f) : référence indéfinie vers « localeconv »
ld : build/lua/lobject.o : dans la fonction « tostringbuff » :
lobject.c:(.text+0xf51) : référence indéfinie vers « localeconv »
ld : build/lua/lstrlib.o : dans la fonction « num2straux » :
lstrlib.c:(.text+0x29fe) : référence indéfinie vers « localeconv »
ld : build/lua/lstrlib.o : dans la fonction « quotefloat » :
lstrlib.c:(.text+0x2ea7) : référence indéfinie vers « localeconv »
ld : build/lua/lstate.o : dans la fonction « luai_makeseed » :
lstate.c:(.text+0x17) : référence indéfinie vers « time »
ld : build/lua/lua.o : dans la fonction « laction » :
lua.c:(.text+0x6b) : référence indéfinie vers « signal »
ld : build/lua/lua.o : dans la fonction « docall » :
lua.c:(.text+0x39e) : référence indéfinie vers « signal »
ld : lua.c:(.text+0x3d6) : référence indéfinie vers « signal »
ld : build/lua/lua.o : dans la fonction « handle_luainit » :
lua.c:(.text+0xbb1) : référence indéfinie vers « getenv »
ld : lua.c:(.text+0xbde) : référence indéfinie vers « getenv »
ld : build/lua/lua.o : dans la fonction « pushline » :
lua.c:(.text+0xd9b) : référence indéfinie vers « fputs »
ld : lua.c:(.text+0xdc7) : référence indéfinie vers « fgets »
ld : build/lua/luac.o : dans la fonction « cannot » :
luac.c:(.text+0x4d) : référence indéfinie vers « errno »
ld : build/lua/luac.o : dans la fonction « pmain » :
luac.c:(.text+0x7f6) : référence indéfinie vers « fopen »
ld : luac.c:(.text+0x853) : référence indéfinie vers « ferror »
ld : luac.c:(.text+0x877) : référence indéfinie vers « fclose »
ld : build/lua/loadlib.o : dans la fonction « setpath » :
loadlib.c:(.text+0x11b) : référence indéfinie vers « getenv »
ld : loadlib.c:(.text+0x13c) : référence indéfinie vers « getenv »
ld : build/lua/loadlib.o : dans la fonction « readable » :
loadlib.c:(.text+0x690) : référence indéfinie vers « fopen »
ld : loadlib.c:(.text+0x6b5) : référence indéfinie vers « fclose »
ld : src/openlibm/src/e_j1.c.o : dans la fonction « pone » :
e_j1.c:(.text+0x278) : référence indéfinie vers « __assert_fail »
ld : src/openlibm/src/e_j1.c.o : dans la fonction « qone » :
e_j1.c:(.text+0x528) : référence indéfinie vers « __assert_fail »
ld : src/openlibm/src/e_j0.c.o : dans la fonction « pzero » :
e_j0.c:(.text+0x278) : référence indéfinie vers « __assert_fail »
ld : src/openlibm/src/e_j0.c.o : dans la fonction « qzero » :
e_j0.c:(.text+0x528) : référence indéfinie vers « __assert_fail »
ld : src/openlibm/src/s_catanl.c.o : dans la fonction « catanl » :
s_catanl.c:(.text+0x141) : référence indéfinie vers « logl »
ld : src/openlibm/src/s_cexpl.c.o : dans la fonction « cexpl » :
s_cexpl.c:(.text+0x1f) : référence indéfinie vers « expl »
ld : src/openlibm/src/s_tgammaf.c.o : dans la fonction « tgammaf » :
s_tgammaf.c:(.text+0x9) : référence indéfinie vers « tgamma »
ld : src/openlibm/src/s_ccoshl.c.o : dans la fonction « ccoshl » :
s_ccoshl.c:(.text+0x47) : référence indéfinie vers « sinhl »
ld : s_ccoshl.c:(.text+0x73) : référence indéfinie vers « coshl »
ld : src/openlibm/src/s_csinhl.c.o : dans la fonction « csinhl » :
s_csinhl.c:(.text+0x47) : référence indéfinie vers « coshl »
ld : s_csinhl.c:(.text+0x73) : référence indéfinie vers « sinhl »
ld : src/openlibm/src/s_sinl.c.o : dans la fonction « sinl » :
s_sinl.c:(.text+0x1b9) : référence indéfinie vers « __kernel_sinl »
ld : s_sinl.c:(.text+0x1de) : référence indéfinie vers « __kernel_sinl »
ld : s_sinl.c:(.text+0x340) : référence indéfinie vers « __kernel_cosl »
ld : s_sinl.c:(.text+0x360) : référence indéfinie vers « __kernel_cosl »
ld : s_sinl.c:(.text+0x385) : référence indéfinie vers « __kernel_sinl »
ld : src/openlibm/src/s_cosl.c.o : dans la fonction « cosl » :
s_cosl.c:(.text+0x199) : référence indéfinie vers « __kernel_cosl »
ld : s_cosl.c:(.text+0x1c4) : référence indéfinie vers « __kernel_cosl »
ld : s_cosl.c:(.text+0x325) : référence indéfinie vers « __kernel_sinl »
ld : s_cosl.c:(.text+0x34d) : référence indéfinie vers « __kernel_sinl »
ld : s_cosl.c:(.text+0x370) : référence indéfinie vers « __kernel_cosl »
ld : src/openlibm/src/s_clogl.c.o : dans la fonction « clogl » :
s_clogl.c:(.text+0x1f) : référence indéfinie vers « logl »
ld : src/openlibm/src/s_casin.c.o : dans la fonction « casin » :
s_casin.c:(.text+0x20f) : référence indéfinie vers « __muldc3 »
ld : s_casin.c:(.text+0x23b) : référence indéfinie vers « __muldc3 »
ld : src/openlibm/src/e_atan2l.c.o : dans la fonction « atan2l » :
e_atan2l.c:(.text+0xc0) : référence indéfinie vers « _ItL_atanhi »
ld : e_atan2l.c:(.text+0xca) : référence indéfinie vers « _ItL_atanlo »
ld : e_atan2l.c:(.text+0x113) : référence indéfinie vers « _ItL_atanhi »
ld : e_atan2l.c:(.text+0x213) : référence indéfinie vers « _ItL_atanhi »
ld : e_atan2l.c:(.text+0x30b) : référence indéfinie vers « _ItL_pi_lo »
ld : e_atan2l.c:(.text+0x34b) : référence indéfinie vers « _ItL_pi_lo »
ld : src/openlibm/src/e_asinl.c.o : dans la fonction « asinl » :
e_asinl.c:(.text+0x48) : référence indéfinie vers « _ItL_atanhi »
ld : e_asinl.c:(.text+0x52) : référence indéfinie vers « _ItL_atanlo »
ld : e_asinl.c:(.text+0x9d) : référence indéfinie vers « _ItL_pS6 »
ld : e_asinl.c:(.text+0xaa) : référence indéfinie vers « _ItL_pS5 »
ld : e_asinl.c:(.text+0xb5) : référence indéfinie vers « _ItL_pS4 »
ld : e_asinl.c:(.text+0xc2) : référence indéfinie vers « _ItL_pS3 »
ld : e_asinl.c:(.text+0xcf) : référence indéfinie vers « _ItL_pS2 »
ld : e_asinl.c:(.text+0xdc) : référence indéfinie vers « _ItL_pS1 »
ld : e_asinl.c:(.text+0xe9) : référence indéfinie vers « _ItL_pS0 »
ld : e_asinl.c:(.text+0xf6) : référence indéfinie vers « _ItL_qS5 »
ld : e_asinl.c:(.text+0x103) : référence indéfinie vers « _ItL_qS4 »
ld : e_asinl.c:(.text+0x10e) : référence indéfinie vers « _ItL_qS3 »
ld : e_asinl.c:(.text+0x11b) : référence indéfinie vers « _ItL_qS2 »
ld : e_asinl.c:(.text+0x128) : référence indéfinie vers « _ItL_qS1 »
ld : e_asinl.c:(.text+0x160) : référence indéfinie vers « _ItL_pS6 »
ld : e_asinl.c:(.text+0x179) : référence indéfinie vers « _ItL_pS5 »
ld : e_asinl.c:(.text+0x184) : référence indéfinie vers « _ItL_pS4 »
ld : e_asinl.c:(.text+0x191) : référence indéfinie vers « _ItL_pS3 »
ld : e_asinl.c:(.text+0x19e) : référence indéfinie vers « _ItL_pS2 »
ld : e_asinl.c:(.text+0x1ab) : référence indéfinie vers « _ItL_pS1 »
ld : e_asinl.c:(.text+0x1b8) : référence indéfinie vers « _ItL_pS0 »
ld : e_asinl.c:(.text+0x1c5) : référence indéfinie vers « _ItL_qS5 »
ld : e_asinl.c:(.text+0x1d6) : référence indéfinie vers « _ItL_qS4 »
ld : e_asinl.c:(.text+0x1e1) : référence indéfinie vers « _ItL_qS3 »
ld : e_asinl.c:(.text+0x1ee) : référence indéfinie vers « _ItL_qS2 »
ld : e_asinl.c:(.text+0x1fb) : référence indéfinie vers « _ItL_qS1 »
ld : e_asinl.c:(.text+0x243) : référence indéfinie vers « _ItL_atanlo »
ld : e_asinl.c:(.text+0x259) : référence indéfinie vers « _ItL_atanhi »
ld : e_asinl.c:(.text+0x27d) : référence indéfinie vers « _ItL_atanhi »
ld : e_asinl.c:(.text+0x297) : référence indéfinie vers « _ItL_atanlo »
ld : src/openlibm/src/s_cpowl.c.o : dans la fonction « cpowl » :
s_cpowl.c:(.text+0xcd) : référence indéfinie vers « powl »
ld : s_cpowl.c:(.text+0x15a) : référence indéfinie vers « expl »
ld : s_cpowl.c:(.text+0x174) : référence indéfinie vers « logl »
ld : src/openlibm/src/s_casinf.c.o : dans la fonction « casinf » :
s_casinf.c:(.text+0x284) : référence indéfinie vers « __mulsc3 »
ld : s_casinf.c:(.text+0x2ba) : référence indéfinie vers « __mulsc3 »
ld : src/openlibm/src/s_catanhl.c.o : dans la fonction « catanhl » :
s_catanhl.c:(.text+0x81) : référence indéfinie vers « __mulxc3 »
ld : s_catanhl.c:(.text+0xb5) : référence indéfinie vers « __mulxc3 »
ld : src/openlibm/src/s_cacoshl.c.o : dans la fonction « cacoshl » :
s_cacoshl.c:(.text+0x66) : référence indéfinie vers « __mulxc3 »
ld : src/openlibm/src/s_cacoshf.c.o : dans la fonction « cacoshf » :
s_cacoshf.c:(.text+0x82) : référence indéfinie vers « __mulsc3 »
ld : src/openlibm/src/s_casinl.c.o : dans la fonction « casinl » :
s_casinl.c:(.text+0x338) : référence indéfinie vers « __mulxc3 »
ld : s_casinl.c:(.text+0x3ca) : référence indéfinie vers « __mulxc3 »
ld : s_casinl.c:(.text+0x40e) : référence indéfinie vers « __mulxc3 »
ld : src/openlibm/src/s_nan.c.o : dans la fonction « __scan_nan » :
s_nan.c:(.text+0x17) : référence indéfinie vers « memset »
ld : s_nan.c:(.text+0x33) : référence indéfinie vers « __ctype_b_loc »
ld : src/openlibm/src/s_cacosh.c.o : dans la fonction « cacosh » :
s_cacosh.c:(.text+0x49) : référence indéfinie vers « __muldc3 »
ld : src/openlibm/src/s_catanh.c.o : dans la fonction « catanh » :
s_catanh.c:(.text+0x6f) : référence indéfinie vers « __muldc3 »
ld : s_catanh.c:(.text+0x86) : référence indéfinie vers « __muldc3 »
ld : src/openlibm/src/s_csinl.c.o : dans la fonction « csinl » :
s_csinl.c:(.text+0x4f) : référence indéfinie vers « coshl »
ld : s_csinl.c:(.text+0x63) : référence indéfinie vers « sinhl »
ld : s_csinl.c:(.text+0xd8) : référence indéfinie vers « expl »
ld : src/openlibm/src/e_acosl.c.o : dans la fonction « acosl » :
e_acosl.c:(.text+0x3d) : référence indéfinie vers « _ItL_atanhi »
ld : e_acosl.c:(.text+0x47) : référence indéfinie vers « _ItL_atanlo »
ld : e_acosl.c:(.text+0x93) : référence indéfinie vers « _ItL_qS5 »
ld : e_acosl.c:(.text+0x9c) : référence indéfinie vers « _ItL_qS4 »
ld : e_acosl.c:(.text+0xa5) : référence indéfinie vers « _ItL_qS3 »
ld : e_acosl.c:(.text+0xb1) : référence indéfinie vers « _ItL_qS2 »
ld : e_acosl.c:(.text+0xbe) : référence indéfinie vers « _ItL_qS1 »
ld : e_acosl.c:(.text+0xcb) : référence indéfinie vers « _ItL_pS6 »
ld : e_acosl.c:(.text+0xd8) : référence indéfinie vers « _ItL_pS5 »
ld : e_acosl.c:(.text+0xe1) : référence indéfinie vers « _ItL_pS4 »
ld : e_acosl.c:(.text+0xea) : référence indéfinie vers « _ItL_pS3 »
ld : e_acosl.c:(.text+0xf3) : référence indéfinie vers « _ItL_pS2 »
ld : e_acosl.c:(.text+0xfc) : référence indéfinie vers « _ItL_pS1 »
ld : e_acosl.c:(.text+0x10b) : référence indéfinie vers « _ItL_pS0 »
ld : e_acosl.c:(.text+0x22a) : référence indéfinie vers « _ItL_pS6 »
ld : e_acosl.c:(.text+0x237) : référence indéfinie vers « _ItL_pS5 »
ld : e_acosl.c:(.text+0x242) : référence indéfinie vers « _ItL_pS4 »
ld : e_acosl.c:(.text+0x24f) : référence indéfinie vers « _ItL_pS3 »
ld : e_acosl.c:(.text+0x25c) : référence indéfinie vers « _ItL_pS2 »
ld : e_acosl.c:(.text+0x269) : référence indéfinie vers « _ItL_pS1 »
ld : e_acosl.c:(.text+0x276) : référence indéfinie vers « _ItL_pS0 »
ld : e_acosl.c:(.text+0x283) : référence indéfinie vers « _ItL_qS5 »
ld : e_acosl.c:(.text+0x290) : référence indéfinie vers « _ItL_qS4 »
ld : e_acosl.c:(.text+0x29b) : référence indéfinie vers « _ItL_qS3 »
ld : e_acosl.c:(.text+0x2a8) : référence indéfinie vers « _ItL_qS2 »
ld : e_acosl.c:(.text+0x2b5) : référence indéfinie vers « _ItL_qS1 »
ld : e_acosl.c:(.text+0x358) : référence indéfinie vers « _ItL_atanlo »
ld : e_acosl.c:(.text+0x383) : référence indéfinie vers « _ItL_atanlo »
ld : src/openlibm/src/s_atanl.c.o : dans la fonction « atanl » :
s_atanl.c:(.text+0x24) : référence indéfinie vers « _ItL_atanhi »
ld : s_atanl.c:(.text+0x2e) : référence indéfinie vers « _ItL_atanlo »
ld : s_atanl.c:(.text+0x90) : référence indéfinie vers « _ItL_aT »
ld : s_atanl.c:(.text+0x113) : référence indéfinie vers « _ItL_atanhi »
ld : s_atanl.c:(.text+0x121) : référence indéfinie vers « _ItL_atanlo »
ld : src/openlibm/src/s_casinhf.c.o : dans la fonction « casinhf » :
s_casinhf.c:(.text+0xa3) : référence indéfinie vers « __mulsc3 »
ld : s_casinhf.c:(.text+0xca) : référence indéfinie vers « __mulsc3 »
ld : src/openlibm/src/s_casinh.c.o : dans la fonction « casinh » :
s_casinh.c:(.text+0x6f) : référence indéfinie vers « __muldc3 »
ld : s_casinh.c:(.text+0x86) : référence indéfinie vers « __muldc3 »
ld : src/openlibm/src/s_ctanl.c.o : dans la fonction « ctanl » :
s_ctanl.c:(.text+0x8a) : référence indéfinie vers « coshl »
ld : s_ctanl.c:(.text+0xf2) : référence indéfinie vers « sinhl »
ld : src/openlibm/src/s_tanl.c.o : dans la fonction « tanl » :
s_tanl.c:(.text+0x1a0) : référence indéfinie vers « __kernel_tanl »
ld : s_tanl.c:(.text+0x1be) : référence indéfinie vers « __kernel_tanl »
ld : s_tanl.c:(.text+0x315) : référence indéfinie vers « __kernel_tanl »
ld : src/openlibm/src/s_casinhl.c.o : dans la fonction « casinhl » :
s_casinhl.c:(.text+0x81) : référence indéfinie vers « __mulxc3 »
ld : s_casinhl.c:(.text+0xb5) : référence indéfinie vers « __mulxc3 »
ld : src/openlibm/src/s_catanhf.c.o : dans la fonction « catanhf » :
s_catanhf.c:(.text+0xa3) : référence indéfinie vers « __mulsc3 »
ld : s_catanhf.c:(.text+0xca) : référence indéfinie vers « __mulsc3 »
ld : src/openlibm/src/s_ccosl.c.o : dans la fonction « ccosl » :
s_ccosl.c:(.text+0x4f) : référence indéfinie vers « coshl »
ld : s_ccosl.c:(.text+0x63) : référence indéfinie vers « sinhl »
ld : s_ccosl.c:(.text+0xe0) : référence indéfinie vers « expl »
ld : src/openlibm/src/e_lgammal.c.o : dans la fonction « lgammal » :
e_lgammal.c:(.text+0x8) : référence indéfinie vers « lgammal_r »
ld : src/openlibm/src/s_ctanhl.c.o : dans la fonction « ctanhl » :
s_ctanhl.c:(.text+0x4c) : référence indéfinie vers « coshl »
ld : s_ctanhl.c:(.text+0x9a) : référence indéfinie vers « sinhl »
make: *** [Makefile:48 : build-x86_64] Erreur 1
Citer : Posté le 24/02/2023 08:30 | #
Plusieurs choses :
- Compile OpenLibm proprement (ie. avec son Makefile), installe-la, et ensuite utilise l'archive .a. Mélanger tous les .o de différents projets c'est le chaos
- N'appelle jamais ld tout seul sauf si tu sais vraiment ce que tu fais (il y a probablement des bouts qui t'échappent), utilise gcc
- Tu as activé ld80 qui n'existe que pour x86 c'est pour ça que toutes les fonctions ItL_etc sortent
- Tu n'a pas linké avec libgcc
Citer : Posté le 24/02/2023 09:50 | #
c'est bon. j'ai corrigé le problème tout seul. j'utilise le makefile et je link le .a et tout marche bien. j'ai ajouté plein de fonctions, il me reste plus que le plus dur.
ld : build/lua/ldo.o : dans la fonction « luaD_throw » :
ldo.c:(.text+0x150) : référence indéfinie vers « longjmp »
ld : build/lua/ldo.o : dans la fonction « luaD_rawrunprotected » :
ldo.c:(.text+0x26a) : référence indéfinie vers « setjmp »
ld : build/lua/lauxlib.o : dans la fonction « l_alloc » :
lauxlib.c:(.text+0x279f) : référence indéfinie vers « free »
ld : lauxlib.c:(.text+0x27be) : référence indéfinie vers « realloc »
ld : build/lua/liolib.o : dans la fonction « io_tmpfile » :
liolib.c:(.text+0x6b5) : référence indéfinie vers « tmpfile »
ld : build/lua/liolib.o : dans la fonction « g_read » :
liolib.c:(.text+0x10e5) : référence indéfinie vers « clearerr »
ld : build/lua/lcode.o : dans la fonction « savelineinfo » :
lcode.c:(.text+0x82e) : référence indéfinie vers « abs »
ld : build/lua/loslib.o : dans la fonction « os_tmpname » :
loslib.c:(.text+0x14d) : référence indéfinie vers « tmpnam »
ld : build/lua/loslib.o : dans la fonction « os_date » :
loslib.c:(.text+0x720) : référence indéfinie vers « gmtime »
ld : loslib.c:(.text+0x73e) : référence indéfinie vers « localtime »
ld : loslib.c:(.text+0x8a4) : référence indéfinie vers « strftime »
ld : build/lua/loslib.o : dans la fonction « os_difftime » :
loslib.c:(.text+0xac6) : référence indéfinie vers « difftime »
make: *** [Makefile:48 : build-x86_64] Erreur 1
ps: les fonctions de fichiers retourne tous 0;
Citer : Posté le 24/02/2023 10:03 | #
Bien joué ! Bon courage pour la libc.
Citer : Posté le 24/02/2023 10:08 | #
pour malloc je ne vais pas me fatiguer pour l'instant. je fais juste faire un système d'offset qui s'incrémente avec 100Ko de marge pour les realloc. j'ai 8Go après tout...
Citer : Posté le 24/02/2023 14:57 | # | Fichier joint
. qui peux m'aider?
make: *** [Makefile:57 : build-x86_64] Erreur 127
Citer : Posté le 24/02/2023 15:05 | #
Le shell te dit que ça plante à la ligne 2 du script, lequel commence à la ligne 57 du Makefile, donc ça plante sur la ligne 58. La "commande vide" n'a pas été trouvée. Peut-être que la variable $(LD) est vide ou contient un truc suspect ?
Citer : Posté le 24/02/2023 15:10 | #
ld est totalement normale! elle marche très bien depuis 2 mois.