Summary: | head -r309179 clang 3.9.0 TARGET_ARCH=powerpc64 buildkernel stops for: rejected assembler notation in hwpmc_e500.c | ||||||
---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | Mark Millard <marklmi26-fbsd> | ||||
Component: | kern | Assignee: | freebsd-toolchain (Nobody) <toolchain> | ||||
Status: | Closed Overcome By Events | ||||||
Severity: | Affects Only Me | CC: | jhibbits | ||||
Priority: | --- | Keywords: | patch | ||||
Version: | CURRENT | ||||||
Hardware: | powerpc | ||||||
OS: | Any | ||||||
Attachments: |
|
Description
Mark Millard
2016-11-28 11:49:57 UTC
(In reply to Mark Millard from comment #0) I've now also tried this on a powerpc64 running a minor variant of head -r309179 and it gets the same result that the amd64 cross build for TARGET_ARCH=powerpc64 does --unlike the buildworld WITH_LIB32= issue now listed in bugzilla 215037. Here it seems that the "BOOK E" specific instructions are missing from the assembler notation that clang 3.9.0 supports for TARGET_ARCH=powerpc64. There might be other non-classic PowerPc instructions also missing for all I know. I've sent a note asking Justin Hibbits what he thinks the proper classification of this is. Does llvm need to support the BOOK E specific instructions on the assembler notation in order for FreeBSD to use clang as the system compiler? Even if GENERIC64 could avoid including such things there would still be the issue of how to allow more specialized builds to target BOOK E (or other variants with special instructions for the variant). This may need a related llvm bugzilla submittal to be listed in the: [META] Using Clang as the FreeBSD/ppc system compiler (25780 for llvm). Created attachment 177812 [details]
patch for contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
Roman Divacky provided the patch and had me test it
on am old PowerMac G5 so-called "Quad Core". It
allowed hwpmc_e500.o to be built and the build to
then continue on to other things instead of
stopping.
(The svnlite diff output is mine in order to be a
comparison against a more modern version than roman
originally used --and so mine has a closer file line
number match.)
Comment on attachment 177812 [details]
patch for contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
Roman Divacky reports that this patch is incomplete, quoting:
. . . the patch is not finished and I don't
have the time nor the resources (I would need to implement the scheduling
for that instruction) to finish it.
I just did it to let you continue your exploring. . . .
Fixed by the import of clang 4.0.0 (changes committed upstream to llvm) |