1. 11 Apr, 2023 1 commit
    • Michael Ellerman's avatar
      powerpc/64: Always build with 128-bit long double · 78f09298
      Michael Ellerman authored
      The amdgpu driver builds some of its code with hard-float enabled,
      whereas the rest of the kernel is built with soft-float.
      
      When building with 64-bit long double, if soft-float and hard-float
      objects are linked together, the build fails due to incompatible ABI
      tags.
      
      In the past there have been build errors in the amdgpu driver caused by
      this, some of those were due to bad intermingling of soft & hard-float
      code, but those issues have now all been fixed since commit 58ddbecb
      ("drm/amd/display: move remaining FPU code to dml folder").
      
      However it's still possible for soft & hard-float objects to end up
      linked together, if the amdgpu driver is built-in to the kernel along
      with the test_emulate_step.c code, which uses soft-float. That happens
      in an allyesconfig build.
      
      Currently those build errors are avoided because the amdgpu driver is
      gated on 128-bit long double being enabled. But that's not a detail the
      amdgpu driver should need to be aware of, and if another driver starts
      using hard-float the same problem would occur.
      
      All versions of the 64-bit ABI specify that long-double is 128-bits.
      However some compilers, notably the kernel.org ones, are built to use
      64-bit long double by default.
      
      Apart from this issue of soft vs hard-float, the kernel doesn't care
      what size long double is. In particular the kernel using 128-bit long
      double doesn't impact userspace's ability to use 64-bit long double, as
      musl does.
      
      So always build the 64-bit kernel with 128-bit long double. That should
      avoid any build errors due to the incompatible ABI tags. Excluding the
      code that uses soft/hard-float, the vmlinux is identical with/without
      the flag.
      
      It does mean any code which is incorrectly intermingling soft &
      hard-float code will build without error, so those bugs will need to be
      caught by testing rather than at build time.
      
      For more background see:
        - commit d11219ad ("amdgpu: disable powerpc support for the newer display engine")
        - commit c653c591 ("drm/amdgpu: Re-enable DCN for 64-bit powerpc")
        - https://lore.kernel.org/r/dab9cbd8-2626-4b99-8098-31fe76397d2d@app.fastmail.comSigned-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Reviewed-by: default avatarSegher Boessenkool <segher@kernel.crashing.org>
      Link: https://msgid.link/20230404102847.3303623-1-mpe@ellerman.id.au
      78f09298
  2. 04 Apr, 2023 8 commits
  3. 03 Apr, 2023 6 commits
  4. 30 Mar, 2023 18 commits
  5. 29 Mar, 2023 1 commit
  6. 27 Mar, 2023 1 commit
  7. 22 Mar, 2023 2 commits
  8. 16 Mar, 2023 1 commit
  9. 15 Mar, 2023 2 commits