amdgcn build failure

Andrew Stubbs ams@codesourcery.com
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 
..../amdgcn-amdhsa/lib/libc.a
 >>> defined at malloc_support.c:69 
(..../newlib/libc/machine/amdgcn/malloc_support.c:69)
 >>>            libc_a-malloc_support.o:(.text+0x1F8) in archive 
..../install/amdgcn-amdhsa/lib/libc.a

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 
..../amdgcn-amdhsa/lib/libc.a
 >>> defined at malloc_support.c:96 
(..../newlib/libc/machine/amdgcn/malloc_support.c:96)
 >>>            libc_a-malloc_support.o:(.text+0x438) in archive 
..../install/amdgcn-amdhsa/lib/libc.a
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?

Thanks

Andrew


More information about the Newlib mailing list