|
Message-ID: <029101d6134e$56d4ece0$047ec6a0$@codeaurora.org> Date: Wed, 15 Apr 2020 12:50:21 -0500 From: <sidneym@...eaurora.org> To: <musl@...ts.openwall.com> Subject: RE: Hexagon DSP support > -----Original Message----- > From: Rich Felker <dalias@...c.org> > Sent: Wednesday, April 15, 2020 11:30 AM > To: sidneym@...eaurora.org > Cc: musl@...ts.openwall.com > Subject: Re: [musl] Hexagon DSP support > > On Wed, Apr 15, 2020 at 08:19:29AM -0500, sidneym@...eaurora.org wrote: > > Recently work has been done with clang/llvm/lld to extend support for > > Qualcomm's Hexagon DSP to a Linux target. At this point the publicly > > available LLVM tools are able to build and run Hexagon programs via QEMU. > > I've attached a patch that add the Hexagon bits to musl. The > > optimized routines have been purposely omitted to keep the size and > > complexity to a minimum. > > > > The changes are being mirrored here: > > https://github.com/quic/musl/tree/hexagon > > The QEMU mirror is here: https://github.com/quic/qemu A description of > > the assembly language is here: > > https://developer.qualcomm.com/download/hexagon/hexagon-v5x- > programmer > > s-refe > > rence-manual.pdf?referrer=node/6116 > > > > The objective is to have enough freely available tools and libraries > > that any user could develop code for the DSP. The C-library is an > > important part of that stack and this patch is intended to start a > > discussion of what would need to happen in order for Hexagon to be > added to the musl sources. > > Thanks for reaching out upstream and sharing this. I did a quick glance over > the port (mostly just arch/hexagon dir, not source dirs in any detail) and what > I've read so far looks good. > > One question I have: alltypes.h.in defines _REDIR_TIME64. Is this because > there's an existing unofficial ABI in deployments that you don't want to > break? If so that's probably okay, but if not it's not necessary or wanted for > new 32-bit archs to define this; if it's not defined, the unadorned symbol > names will just be 64-bit versions, just like on 64-bit archs. > That was a copy/paste error and was responsible for a few libc-testsuite failures: ld.lld: error: undefined symbol: __dlsym_time64 I will correct that and update the source. > > I've tested this using libc-test (git://repo.or.cz/libc-test) and 56 > > errors are reported. The support for Hexagon in QEMU is on-going and > > while some of the errors (math) may be attributed to QEMU most also > > happen on hardware. A good chunk fail due to floating point exception > status or precision. > > Can you send the output report to the list or post it somewhere publicly > accessible? I can probably give you a quick rundown on whether any of the > failures are unexpected (on qemu or real hardware) and it will suggest which > parts of the source I (and others in the > community) should focus on reviewing. This is the list, the context associated with some of the failures can be bulky so I hope the summary is ok. Let me know which failures are most critical and I will try to fix those first. 51 failures after removing the TIME64 define FAIL src/api/main.exe [status 1] FAIL src/functional/dlopen.exe [status 1] FAIL src/functional/ipc_msg-static.exe [status 1] FAIL src/functional/ipc_msg.exe [status 1] FAIL src/functional/ipc_sem-static.exe [status 1] FAIL src/functional/ipc_sem.exe [status 1] FAIL src/functional/ipc_shm-static.exe [status 1] FAIL src/functional/ipc_shm.exe [status 1] FAIL src/functional/pthread_mutex-static.exe [status 1] FAIL src/functional/pthread_mutex.exe [status 1] FAIL src/functional/pthread_mutex_pi-static.exe [timed out] FAIL src/functional/pthread_mutex_pi.exe [signal Segmentation fault] FAIL src/functional/pthread_robust-static.exe [timed out] FAIL src/functional/pthread_robust.exe [timed out] FAIL src/functional/sem_init-static.exe [status 1] FAIL src/functional/sem_init.exe [status 1] FAIL src/functional/strptime-static.exe [status 1] FAIL src/functional/strptime.exe [status 1] FAIL src/functional/utime-static.exe [status 1] FAIL src/functional/utime.exe [status 1] FAIL src/math/acoshl.exe [status 1] FAIL src/math/asinhl.exe [status 1] FAIL src/math/erfcl.exe [status 1] FAIL src/math/exp2l.exe [status 1] FAIL src/math/fmal.exe [status 1] FAIL src/math/ilogb.exe [status 1] FAIL src/math/ilogbf.exe [status 1] FAIL src/math/ilogbl.exe [status 1] FAIL src/math/lgammal.exe [status 1] FAIL src/math/powf.exe [status 1] FAIL src/math/powl.exe [status 1] FAIL src/math/sqrt.exe [status 1] FAIL src/math/sqrtf.exe [status 1] FAIL src/math/sqrtl.exe [status 1] FAIL src/math/tgamma.exe [status 1] FAIL src/math/tgammaf.exe [status 1] FAIL src/math/tgammal.exe [status 1] FAIL src/math/y0.exe [status 1] FAIL src/math/y0f.exe [status 1] FAIL src/math/y1.exe [status 1] FAIL src/math/y1f.exe [status 1] FAIL src/math/yn.exe [status 1] FAIL src/math/ynf.exe [status 1] FAIL src/regression/malloc-brk-fail-static.exe [status 1] FAIL src/regression/malloc-brk-fail.exe [timed out] FAIL src/regression/pthread-robust-detach-static.exe [status 1] FAIL src/regression/pthread-robust-detach.exe [status 1] FAIL src/regression/pthread_cond-smasher-static.exe [status 1] FAIL src/regression/pthread_cond-smasher.exe [status 1] FAIL src/regression/pthread_cond_wait-cancel_ignored-static.exe [status 1] FAIL src/regression/pthread_once-deadlock-static.exe [status 1] > > Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.