amdgcn build failure

Andrew Stubbs
Fri Mar 18 11:43:51 GMT 2022

Hi Mike, all,

Following your commit 96bc16f, merged yesterday, my amdgcn toolchain 
fails to build. The Newlib built itself completes successfully, but 
subsequent use of the library is broken.

The problem seems to be related to the __malloc_lock function, but I 
can't quite work out why. Here's the error message:

ld: error: duplicate symbol: __malloc_lock
 >>> defined at mlock.c:42 (..../newlib/libc/stdlib/mlock.c:42)
 >>>            libc_a-mlock.o:(__malloc_lock) in archive 
 >>> defined at malloc_support.c:69 
 >>>            libc_a-malloc_support.o:(.text+0x1F8) in archive 

ld: error: duplicate symbol: __malloc_unlock
 >>> defined at malloc.h:138 (..../newlib/libc/include/malloc.h:138)
 >>>            libc_a-mlock.o:(__malloc_unlock) in archive 
 >>> defined at malloc_support.c:96 
 >>>            libc_a-malloc_support.o:(.text+0x438) in archive 
collect2: error: ld returned 1 exit status

(I should mention that the amdgcn port uses the LLVM binary utilities, 
so the error messages look a little different to GNU ld. I've also 
elided the long pathnames with "....".)

Previously only the machine-specific __malloc_lock was used, which is of 
course the one I want.

Should those functions be added differently now?



More information about the Newlib mailing list