Dock när jag försöker länka in libc och libnosys så klagar länkaren på att vissa objektfiler saknas, men dessa finns i libnosys. libnosys är tillagt på komandoraden så den ska länkas med. Även listfilerna indikerar att biblioteket är inläst.
Det behövs säkert mer info än detta för att lösa problemet, men jag får försöka svara på eventuella frågor vart efter...
Alla funktioner finns inte med här men tex isatty borde ju länkas in tycker man.
Här är lite felutskrifter:
Kod: Markera allt
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-fstatr.o): In function `_fstat_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/fstatr.c:62: undefined reference to `_fstat'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-makebuf.o): In function `__smakebuf':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/stdio/../../../../../newlib-1.15.0/newlib/libc/stdio/makebuf.c:102: undefined reference to `isatty'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-openr.o): In function `_open_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/openr.c:59: undefined reference to `_open'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/sbrkr.c:60: undefined reference to `_sbrk'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-signalr.o): In function `_kill_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/signalr.c:61: undefined reference to `_kill'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-signalr.o): In function `_getpid_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/signalr.c(.text+0x6c): undefined reference to `_getpid'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-writer.o): In function `_write_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/writer.c:58: undefined reference to `_write'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-closer.o): In function `_close_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/closer.c:53: undefined reference to `_close'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-lseekr.o): In function `_lseek_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/lseekr.c:58: undefined reference to `_lseek'
C:/akre/IDAX300/FW_A02/CIO/fpga/microblaze_0/Lib/libc.a(lib_a-readr.o): In function `_read_r':
/cygdrive/c/akre/build-newlib/mb/newlib/libc/reent/../../../../../newlib-1.15.0/newlib/libc/reent/readr.c:58: undefined reference to `_read'
Och en dump från objdump -S :
Kod: Markera allt
In archive libnosys.a:
chown.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <_chown>:
const char *path _AND
uid_t owner _AND
gid_t group)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
close.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <close>:
int
_DEFUN (_close, (fildes),
int fildes)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
environ.o: file format elf32-microblaze
Disassembly of section .text:
errno.o: file format elf32-microblaze
Disassembly of section .text:
execve.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <execve>:
char *name _AND
char **argv _AND
char **env)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
fork.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <fork>:
int
_DEFUN (_fork, (),
_NOARGS)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
fstat.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <fstat>:
_DEFUN (_fstat, (fildes, st),
int fildes _AND
struct stat *st)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
getpid.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <getpid>:
int
_DEFUN (_getpid, (),
_NOARGS)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
gettod.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <gettimeofday>:
_DEFUN (_gettimeofday, (ptimeval, ptimezone),
struct timeval *ptimeval _AND
struct timezone *ptimezone)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
isatty.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <isatty>:
int
_DEFUN (isatty, (file),
int file)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return 0;
}
c: b60f0008 rtsd r15, 8
10: 10600000 addk r3, r0, r0
kill.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <kill>:
_DEFUN (_kill, (pid, sig),
int pid _AND
int sig)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
link.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <link>:
_DEFUN (_link, (existing, new),
char *existing _AND
char *new)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
lseek.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <lseek>:
int file _AND
int ptr _AND
int dir)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
open.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <open>:
char *file _AND
int flags _AND
int mode)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
read.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <read>:
int file _AND
char *ptr _AND
int len)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
readlink.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <_readlink>:
const char *path _AND
char *buf _AND
size_t bufsize)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
sbrk.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <sbrk>:
extern char end; /* Set by linker. */
static char * heap_end;
char * prev_heap_end;
if (heap_end == 0)
0: b0000000 imm 0
4: e8600000 lwi r3, r0, 0
8: be230014 bneid r3, 20 // 1c
c: 10832800 addk r4, r3, r5
heap_end = & end;
10: b0000000 imm 0
14: 30600000 addik r3, r0, 0
prev_heap_end = heap_end;
heap_end += incr;
18: 10832800 addk r4, r3, r5
1c: b0000000 imm 0
20: f8800000 swi r4, r0, 0
return (void *) prev_heap_end;
}
24: b60f0008 rtsd r15, 8
28: 80000000 or r0, r0, r0
stat.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <stat>:
_DEFUN (_stat, (file, st),
const char *file _AND
struct stat *st)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
symlink.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <_symlink>:
_DEFUN (_symlink, (path1, path2),
const char *path1 _AND
const char *path2)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
times.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <times>:
clock_t
_DEFUN (_times, (buf),
struct tms *buf)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
unlink.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <unlink>:
int
_DEFUN (_unlink, (name),
char *name)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
wait.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <wait>:
int
_DEFUN (_wait, (status),
int *status)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
write.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <write>:
int file _AND
char *ptr _AND
int len)
{
errno = ENOSYS;
0: 30600058 addik r3, r0, 88
4: b0000000 imm 0
8: f8600000 swi r3, r0, 0
return -1;
}
c: b60f0008 rtsd r15, 8
10: 3060ffff addik r3, r0, -1
_exit.o: file format elf32-microblaze
Disassembly of section .text:
00000000 <_exit>:
_VOID
_DEFUN (_exit, (rc),
int rc)
{
0: 3021ffe4 addik r1, r1, -28
4: b8000000 bri 0 // 4