MIPS Creator CI20 patches (again)
adam at os.inf.tu-dresden.de
Mon Jan 8 00:37:41 CET 2018
On Sun Jan 07, 2018 at 14:15:13 +0100, Paul Boddie wrote:
> Sorry to follow up on myself again...
> On Thursday 21. December 2017 01.55.51 Paul Boddie wrote:
> > On Wednesday 20. December 2017 16.52.45 Paul Boddie wrote:
> > > However, another problem has emerged when trying to build L4Re. It
> > > appears that something changed between r72 and r73, and now, when I try
> > > and build L4Re, I get a linker error as described in the following
> > > Debian bug report:
> > >
> > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884821
> > >
> > > ----
> > > mipsel-linux-gnu-ld: main.o: Can't find matching LO16 reloc against
> > > `.text' for R_MIPS_GOT16 at 0x1f8 in section `mipsel-linux-gnu-ld: BFD
> > > (GNU Binutils for Debian) 2.29.1 internal error, aborting at
> > > ../../bfd/bfd.c:866 in _bfd_doprnt
> This specific internal error is a bug in binutils when producing the error
> message, but the error causing the message is a genuine problem.
> In pkg/examples/sys/utcb-ipc/main.c, expanding the L4UTIL_THREAD_STATIC_FUNC
> macro by hand, I get the following:
> void __attribute__((visibility("internal"))) thread2(void);
> static void __attribute__((used)) thread2_worker_function(void);
> asm (
> ".type thread2, function \n"
> "thread2 : \n .set push; .set noreorder;"
> "la $t9, thread2_worker_function\n"
> " jal $t9 \n"
> " nop \n"
> ".set pop"
> static L4_NORETURN void thread2_worker_function(void)
> It seems that the problem is caused by the declaration of thread2. If I
> replace that with this...
> static void thread2(void);
> ...the error associated with the output goes away (although I get a warning
> from the compiler about thread2 not being defined, which happens in the
> assembly language code, of course). But obviously, this isn't a proper
Is it ok if you have visibility("hidden") instead of internal?
More information about the l4-hackers