MIPS Creator CI20 patches (again)

Adam Lackorzynski adam at os.inf.tu-dresden.de
Mon Jan 8 00:37:41 CET 2018


Hi Paul,

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:
> 
> EXTERN_C_BEGIN
> 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;"
>   L4UTIL_THREAD_START_SETUP_GP
>   "la $t9, thread2_worker_function\n"
>   "  jal $t9 \n"
>   "   nop    \n"
>   ".set pop"
> );
> EXTERN_C_END
> 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 
> solution.

Is it ok if you have visibility("hidden") instead of internal?


Thanks,
Adam




More information about the l4-hackers mailing list