Re: [kvm-unit-tests PATCH 1/7] x86: Makefile: Allow division on x86_64-elf binutils

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
>>> Signed-off-by: Roman Bolshakov <r.bolshakov@xxxxxxxxx>
>>> ---
>>>  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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux