All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeroen Hofstee <jeroen@myspectrum.nl>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 0/8] add clang support for some ARM boards
Date: Thu, 11 Sep 2014 22:12:32 +0200	[thread overview]
Message-ID: <54120230.2090702@myspectrum.nl> (raw)
In-Reply-To: <E1XS4Sr-0007nu-2W@janus>

Hello Albert,

On 11-09-14 15:31, Albert ARIBAUD wrote:
>> Thanks, tested building rpi_b, it works now.
>>
>> The, tested on versatileqemu out of curiosity and got the following
>> results:
>>
>> 1.
>>
>> clang warns about Unused static functions in common/console.c, namely
>> console_printdevs and console_doenv (1). Why gcc does not flag this?
>> We have -Wall set which is supposed to imply -Wunused-functions.
>> It is a gcc feature, see [1]: "Warn whenever a static function is
>> declared but not defined or a _non-inline static function_ is unused.
>> This warning is enabled by -Wall."
> Ok, I'll assume there is some logic in there, but then, clang does not
> follow that logic -- so which one is the 'good' one? Or maybe that's
> the same as the second issue, where...

well I don't know the details, but the compiler should not emit a
warning if the static inline came from a header file, perhaps that
is motivation behind it. Anyway I have a branch with 60 patches
or so fixing warnings, don't bother too much about them for the
time being.

>>> 2.
>>>
>>> clang errors on arch/arm/lib/cache.c:28 for this:
>>> asm("0: mrc p15, 0, r15, c7, c10, 3\n\t" "bne 0b\n" : : : "memory");
>>> and that is a clang mistake, as for ARM926EJS r15 is a valid (albeit
>>> quite special semantically) Rd for Test and Clean DCache, see page 2-24.
>>>
>> This is the integrated-as complaining (the README tells you to disable
>> it for the moment). The clang folks push UAL hard, up to a point we need
>> to think about minimum gcc version etc. To avoid that, I just left out
>> such changes and just use gas instead, at least for the time being.
>> Below are some changes to compile versatileqemu with llvm integrated-as
>> and gcc/gas. No idea if it actually boots though.
>>
[..]

>> ~       "mrc p15, 0, r15, c7, c14, 3\n"
>> +       "mrc p15, 0, apsr_nzcv, c7, c14, 3\n"
> Is this is a hack to set the Rd field of the mrc instruction to a value
> equal to what "r15" would have given, but fooling clang by using an
> unrelated and, in this context, meaningless, symbol instead of "r15"?
>

Nope, it is UAL syntax, binutils agrees:

 > arm-linux-gnueabi-objdump -S u-boot

flush_dcache:
         mrc     p15, 0, r15, c7, c10, 3
    10320:       ee17ff7a        mrc     15, 0, APSR_nzcv, cr7, cr10, {3}


Clang is just pushing it a bit harder. I have a branch for that too,
but as said, I will let it bit-rot for a while, since that would require
about minimal gcc versions and other boring stuff.

Regards,
Jeroen

  reply	other threads:[~2014-09-11 20:12 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-31 20:32 [U-Boot] [RFC 00/10] clang support for ARM Jeroen Hofstee
2014-05-31 20:32 ` [U-Boot] [RFC 01/10] ARM: crt0.S: clear the global data Jeroen Hofstee
2014-06-03  2:02   ` Simon Glass
2014-06-03 19:41     ` Jeroen Hofstee
2014-06-03 15:36   ` Tim Harvey
2014-07-11 17:55   ` Jeroen Hofstee
2014-05-31 20:32 ` [U-Boot] [RFC 02/10] ARM: omap3/board: add spl specific board_init_f Jeroen Hofstee
2014-05-31 20:32 ` [U-Boot] [RFC 03/10] board_r: only assign gd when requested Jeroen Hofstee
2014-06-03  2:05   ` Simon Glass
2014-06-03 20:52   ` Jeroen Hofstee
2014-06-04  3:52     ` Stefan Roese
2014-06-04  4:19       ` York Sun
2014-05-31 20:32 ` [U-Boot] [RFC 04/10] ARM: do not set gd in generic board again Jeroen Hofstee
2014-06-03  2:06   ` Simon Glass
2014-05-31 20:32 ` [U-Boot] [RFC 05/10] ARM: SPL: do not set gd again Jeroen Hofstee
2014-06-03  2:07   ` Simon Glass
2014-06-03 15:38   ` Tim Harvey
2014-05-31 20:32 ` [U-Boot] [RFC 06/10] cc-option: make it work with clang Jeroen Hofstee
2014-06-10  8:39   ` Masahiro Yamada
2014-06-10  8:52     ` Albert ARIBAUD
2014-07-05 13:34     ` Jeroen Hofstee
2014-05-31 20:32 ` [U-Boot] [RFC 07/10] ARM: make gd a function a function for clang Jeroen Hofstee
2014-06-03  2:20   ` Simon Glass
2014-06-03 19:44     ` Jeroen Hofstee
2014-06-03 19:58     ` Jeroen Hofstee
2014-06-03 20:00       ` Simon Glass
2014-05-31 20:32 ` [U-Boot] [RFC 08/10] inline: use the gcc inline version instead of the c99 one Jeroen Hofstee
2014-05-31 20:32 ` [U-Boot] [RFC 09/10] eabi_compat: add __aeabi_memcpy __aeabi_memset Jeroen Hofstee
2014-05-31 20:32 ` [U-Boot] [RFC 10/10] README.clang: build command with clang Jeroen Hofstee
2014-07-30 19:54 ` [U-Boot] [PATCH v2 0/8] add clang support for some ARM boards Jeroen Hofstee
2014-07-30 19:54   ` [U-Boot] [PATCH v2 1/8] board_r: ARM[64] do not set gd again Jeroen Hofstee
2014-07-30 19:54   ` [U-Boot] [PATCH v2 2/8] ARM: SPL: " Jeroen Hofstee
2014-07-30 19:54   ` [U-Boot] [PATCH v2 3/8] cc-option: also detect unsupported warnings options Jeroen Hofstee
2014-07-30 19:54   ` [U-Boot] [PATCH v2 4/8] ARM: make gd a function for clang Jeroen Hofstee
2014-07-30 19:54   ` [U-Boot] [PATCH v2 5/8] eabi_compat: add __aeabi_memcpy __aeabi_memset Jeroen Hofstee
2014-07-30 19:54   ` [U-Boot] [PATCH v2 6/8] clang: workaround for generated constants Jeroen Hofstee
2014-07-30 19:54   ` [U-Boot] [PATCH v2 7/8] Makefile: default to cc for host compiler Jeroen Hofstee
2014-07-31 10:01     ` Masahiro Yamada
2014-09-09 14:31       ` Albert ARIBAUD
2014-09-09 17:34         ` Jeroen Hofstee
2014-09-09 19:59           ` Albert ARIBAUD
2014-09-09 21:48             ` Jeroen Hofstee
2014-09-10 10:02             ` Jeroen Hofstee
2014-09-11  5:03           ` Masahiro Yamada
2014-07-30 19:54   ` [U-Boot] [PATCH v2 8/8] README.clang: build command with clang Jeroen Hofstee
2014-09-10 18:08   ` [U-Boot] [PATCH v3 0/8] add clang support for some ARM boards Jeroen Hofstee
2014-09-10 18:08     ` [U-Boot] [PATCH v3 7/8] Makefile: default to cc for host compiler Jeroen Hofstee
2014-09-10 18:08     ` [U-Boot] [PATCH v3 8/8] README.clang: build command with clang Jeroen Hofstee
2014-09-11  8:32     ` [U-Boot] [PATCH v3 0/8] add clang support for some ARM boards Albert ARIBAUD
2014-09-11 11:17       ` Jeroen Hofstee
2014-09-11 13:31         ` Albert ARIBAUD
2014-09-11 20:12           ` Jeroen Hofstee [this message]
2014-09-11 15:43         ` Albert ARIBAUD
2014-09-11 19:36           ` Jeroen Hofstee
2014-09-11 15:48     ` Albert ARIBAUD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54120230.2090702@myspectrum.nl \
    --to=jeroen@myspectrum.nl \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.