Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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.