Kernel KVM virtualization development
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Roman Bolshakov <r.bolshakov@yadro.com>
Cc: kvm@vger.kernel.org, Cameron Esfahani <dirty@apple.com>
Subject: Re: [kvm-unit-tests PATCH 1/7] x86: Makefile: Allow division on x86_64-elf binutils
Date: Fri, 28 Aug 2020 09:24:10 +0200	[thread overview]
Message-ID: <e3589b43-df3f-b413-a3b9-1f032da48571@redhat.com> (raw)
In-Reply-To: <20200828065417.GA54274@SPB-NB-133.local>

On 28/08/2020 08.54, Roman Bolshakov wrote:
> On Fri, Aug 28, 2020 at 07:00:19AM +0200, Thomas Huth wrote:
>> On 10/08/2020 15.06, Roman Bolshakov wrote:
>>> For compatibility with other SVR4 assemblers, '/' starts a comment on
>>> *-elf binutils target and thus division operator is not allowed [1][2].
>>> That breaks cstart64.S build:
>>>
>>>   x86/cstart64.S: Assembler messages:
>>>   x86/cstart64.S:294: Error: unbalanced parenthesis in operand 1.
>>>
>>> The option is ignored on the Linux target of GNU binutils.
>>>
>>> 1. https://sourceware.org/binutils/docs/as/i386_002dChars.html
>>> 2. https://sourceware.org/binutils/docs/as/i386_002dOptions.html#index-_002d_002ddivide-option_002c-i386
>>>
>>> Cc: Cameron Esfahani <dirty@apple.com>
>>> Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
>>> ---
>>>  x86/Makefile | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/x86/Makefile b/x86/Makefile
>>> index 8a007ab..22afbb9 100644
>>> --- a/x86/Makefile
>>> +++ b/x86/Makefile
>>> @@ -1 +1,3 @@
>>>  include $(SRCDIR)/$(TEST_DIR)/Makefile.$(ARCH)
>>> +
>>> +COMMON_CFLAGS += -Wa,--divide
>>
>> Some weeks ago, I also played with an elf cross compiler and came to the
>> same conclusion, that we need this option there. Unfortunately, it does
>> not work with clang:
>>
>>  https://gitlab.com/huth/kvm-unit-tests/-/jobs/707986800#L1629
>>
>> You could try to wrap it with "cc-option" instead ... or use a proper
>> check in the configure script to detect whether it's needed or not.
>>
> 
> Hi Thomas,
> 
> Thanks for reviewing the series. I'll look into both options and will
> test with both gcc and clang afterwards. I can also update .travis.yml
> in a new patch to test the build on macOS.

That would be great, thanks! Note that you need at least Clang v10 (the
one from Fedora 32 is fine) to compile the kvm-unit-tests.

And if it's of any help, this was the stuff that I used in .travis.yml
for my experiments (might still be incomplete, though):

    - os: osx
      osx_image: xcode12
      addons:
        homebrew:
          packages:
            - bash
            - coreutils
            - qemu
            - x86_64-elf-gcc
      env:
      - CONFIG="--cross-prefix=x86_64-elf-"
      - BUILD_DIR="build"
      - TESTS="umip"
      - ACCEL="tcg"

    - os: osx
      osx_image: xcode12
      addons:
        homebrew:
          packages:
            - bash
            - coreutils
            - qemu
            - i386-elf-gcc
      env:
      - CONFIG="--arch=i386 --cross-prefix=x86_64-elf-"
      - BUILD_DIR="build"
      - TESTS="umip"
      - ACCEL="tcg"

 Thomas


  reply	other threads:[~2020-08-28  7:24 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-10 13:06 [kvm-unit-tests PATCH 0/7] Add support for generic ELF cross-compiler Roman Bolshakov
2020-08-10 13:06 ` [kvm-unit-tests PATCH 1/7] x86: Makefile: Allow division on x86_64-elf binutils Roman Bolshakov
2020-08-28  5:00   ` Thomas Huth
2020-08-28  6:54     ` Roman Bolshakov
2020-08-28  7:24       ` Thomas Huth [this message]
2020-08-28  7:47         ` Roman Bolshakov
2020-08-28  7:56           ` Thomas Huth
2020-08-28  8:37             ` Roman Bolshakov
2020-08-31 17:30     ` Roman Bolshakov
2020-08-31 20:33       ` Thomas Huth
2020-08-10 13:06 ` [kvm-unit-tests PATCH 2/7] x86: Replace instruction prefixes with spaces Roman Bolshakov
2020-08-28  4:34   ` Thomas Huth
2020-08-10 13:06 ` [kvm-unit-tests PATCH 3/7] x86: Makefile: Fix linkage of realmode on x86_64-elf binutils Roman Bolshakov
2020-08-28  5:44   ` Thomas Huth
2020-08-10 13:06 ` [kvm-unit-tests PATCH 4/7] lib: Bundle debugreg.h from the kernel Roman Bolshakov
2020-08-28  4:56   ` Thomas Huth
2020-08-10 13:06 ` [kvm-unit-tests PATCH 5/7] lib: x86: Use portable format macros for uint32_t Roman Bolshakov
2020-08-28  5:49   ` Thomas Huth
2020-08-10 13:06 ` [kvm-unit-tests PATCH 6/7] configure: Add an option to specify getopt Roman Bolshakov
2020-08-28  5:55   ` Thomas Huth
2020-08-28  7:12     ` Roman Bolshakov
2020-08-28  7:34       ` Thomas Huth
2020-08-10 13:06 ` [kvm-unit-tests PATCH 7/7] README: Update build instructions for macOS Roman Bolshakov
2020-08-26 16:52 ` [kvm-unit-tests PATCH 0/7] Add support for generic ELF cross-compiler Roman Bolshakov

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=e3589b43-df3f-b413-a3b9-1f032da48571@redhat.com \
    --to=thuth@redhat.com \
    --cc=dirty@apple.com \
    --cc=kvm@vger.kernel.org \
    --cc=r.bolshakov@yadro.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox