linux/drivers/gpu/drm
Michael Ellerman 78f0929884 powerpc/64: Always build with 128-bit long double
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 58ddbecb14
("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 d11219ad53 ("amdgpu: disable powerpc support for the newer display engine")
  - commit c653c59178 ("drm/amdgpu: Re-enable DCN for 64-bit powerpc")
  - https://lore.kernel.org/r/dab9cbd8-2626-4b99-8098-31fe76397d2d@app.fastmail.com

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
Link: https://msgid.link/20230404102847.3303623-1-mpe@ellerman.id.au
2023-04-11 23:13:11 +10:00
..
amd powerpc/64: Always build with 128-bit long double 2023-04-11 23:13:11 +10:00
arm drm/arm/komeda: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:30 +01:00
armada drm/fb-helper: Remove drm_fb_helper_unprepare() from drm_fb_helper_fini() 2023-02-21 13:26:18 +01:00
aspeed drm/aspeed: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:31 +01:00
ast drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
atmel-hlcdc drm: atmel-hlcdc: Remove #ifdef guards for PM related functions 2022-12-12 12:30:56 +00:00
bridge drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
display drm/display: Don't block HDR_OUTPUT_METADATA on unknown EOTF 2023-03-07 15:54:18 -05:00
etnaviv - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
exynos - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
fsl-dcu hardening updates for v6.2-rc1 2022-12-14 12:20:00 -08:00
gma500 - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
gud drm/gud: use new debugfs device-centered functions 2023-01-06 16:15:08 -03:00
hisilicon drm: Only select I2C_ALGOBIT for drivers that actually need it 2023-01-10 11:15:44 +01:00
hyperv Drivers: hv: Make remove callback of hyperv driver void returned 2023-01-17 13:41:27 +00:00
i2c drm-misc-next for $kernel-version: 2023-01-24 17:36:29 +01:00
i915 drm-next-fixes for 6.3-rc1 2023-03-02 15:08:54 -08:00
imx drm/imx/dcss: Don't call dev_set_drvdata(..., NULL); 2023-01-10 16:26:06 +02:00
ingenic drm/ingenic: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:31 +01:00
kmb drm/kmb: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:31 +01:00
lib
lima Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
logicvc drm/logicvc: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:31 +01:00
mcde
mediatek - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
meson Linux 6.2-rc6 2023-01-31 12:23:23 +01:00
mgag200 drm: Only select I2C_ALGOBIT for drivers that actually need it 2023-01-10 11:15:44 +01:00
msm Merge tag 'drm-msm-fixes-2023-03-09' of https://gitlab.freedesktop.org/drm/msm into drm-fixes 2023-03-10 05:52:10 +10:00
mxsfb drm/mxsfb: improve clk handling for axi clk 2023-01-10 11:04:56 +01:00
nouveau A fix for nouveau preventing the system shutdown and one for a build 2023-03-07 05:42:34 +10:00
omapdrm drm-next-fixes for 6.3-rc1 2023-03-02 15:08:54 -08:00
panel drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
panfrost Linux 6.2-rc6 2023-01-31 12:23:23 +01:00
pl111
qxl drm/qxl: stop using ttm_bo_wait 2022-12-19 09:50:06 +01:00
radeon drm/radeon: Fix eDP for single-display iMac11,2 2023-03-01 22:37:25 -05:00
rcar-du Renesas R-Car DU fixes and improvements 2023-01-30 13:49:56 +10:00
rockchip - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
scheduler Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2023-02-09 16:16:44 +10:00
shmobile drm/shmobile: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:32 +01:00
solomon drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
sprd drm/sprd: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:32 +01:00
sti hardening updates for v6.2-rc1 2022-12-14 12:20:00 -08:00
stm
sun4i drm/sun4i: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:32 +01:00
tegra IOMMU Updates for Linux v6.3: 2023-02-24 13:40:13 -08:00
tests Linux 6.2-rc6 2023-01-31 12:23:23 +01:00
tidss drm/tidss: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:32 +01:00
tilcdc drm: tilcdc: Remove #ifdef guards for PM related functions 2022-12-12 13:07:02 +00:00
tiny A fix for nouveau preventing the system shutdown and one for a build 2023-03-07 05:42:34 +10:00
ttm - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
tve200
udl drm/udl: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:32 +01:00
v3d drm/v3d: replace open-coded implementation of drm_gem_object_lookup 2023-01-03 18:16:01 -01:00
vboxvideo drm/vboxvideo: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:32 +01:00
vc4 drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
vgem
virtio - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
vkms drm/vkms: reintroduce prepare_fb and cleanup_fb functions 2023-01-12 09:46:19 -01:00
vmwgfx - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
xen mm: replace vma->vm_flags direct modifications with modifier calls 2023-02-09 16:51:39 -08:00
xlnx
drm_agpsupport.c
drm_aperture.c
drm_atomic_helper.c
drm_atomic_state_helper.c drm/atomic-helper: fix kernel-doc problems 2023-01-19 09:16:04 +01:00
drm_atomic_uapi.c drm/connector: Add TV standard property 2022-11-24 12:42:39 +01:00
drm_atomic.c drm/connector: print max_requested_bpc in state debugfs 2023-03-07 15:55:18 -05:00
drm_auth.c
drm_blend.c drm/drm_blend: Remove usage of deprecated DRM_DEBUG_ATOMIC 2023-01-10 16:14:13 +01:00
drm_bridge_connector.c drm/bridge_connector: drop drm_bridge_connector_en/disable_hpd() 2023-01-05 15:08:10 +01:00
drm_bridge.c drm/bridge: Document the expected behaviour of DSI host controllers 2022-12-08 09:56:57 +01:00
drm_buddy.c drm: Optimize drm buddy top-down allocation method 2023-01-12 13:50:28 +01:00
drm_bufs.c drm/nouveau: Remove support for legacy contexts/buffers 2023-01-13 09:22:02 +01:00
drm_cache.c
drm_client_modeset.c drm/client: Remove match on mode name 2022-11-24 12:42:40 +01:00
drm_client.c drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
drm_color_mgmt.c
drm_connector.c drm/edid: parse VICs from CTA VDB early 2023-01-19 10:53:24 +02:00
drm_context.c drm/nouveau: Remove support for legacy contexts/buffers 2023-01-13 09:22:02 +01:00
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c
drm_debugfs_crc.c
drm_debugfs.c drm/debugfs: use octal permissions instead of symbolic permissions 2023-01-10 09:57:05 -03:00
drm_displayid.c
drm_dma.c
drm_drv.c drm-misc-next for v6.3: 2023-01-04 14:59:25 +01:00
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm/edid: remove redundant _drm_connector_update_edid_property() 2023-01-23 11:46:50 +02:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_dma_helper.c
drm_fb_helper.c drm/fb-helper: Remove drm_fb_helper_unprepare() from drm_fb_helper_fini() 2023-02-21 13:26:18 +01:00
drm_fbdev_generic.c drm/fb-helper: Remove drm_fb_helper_unprepare() from drm_fb_helper_fini() 2023-02-21 13:26:18 +01:00
drm_file.c drm-misc-next for v6.3: 2023-01-16 15:33:28 +10:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Support the AB24/XB24 formats 2023-01-23 15:02:41 +01:00
drm_fourcc.c drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats 2022-11-23 20:34:46 +01:00
drm_framebuffer.c drm: use new debugfs device-centered functions on DRM core files 2022-12-22 14:58:21 -03:00
drm_gem_atomic_helper.c drm/simple-kms: Remove drm_gem_simple_display_pipe_prepare_fb() 2022-12-05 13:35:37 +01:00
drm_gem_dma_helper.c - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
drm_gem_framebuffer_helper.c
drm_gem_shmem_helper.c drm-next-fixes for 6.3-rc1 2023-03-02 15:08:54 -08:00
drm_gem_ttm_helper.c drm/ttm: merge ttm_bo_api.h and ttm_bo_driver.h v2 2022-12-06 12:54:14 +01:00
drm_gem_vram_helper.c drm: use new debugfs device-centered functions on DRM core files 2022-12-22 14:58:21 -03:00
drm_gem.c - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
drm_hashtab.c
drm_internal.h drm/debugfs: create debugfs late register functions 2022-12-22 14:58:55 -03:00
drm_ioc32.c drm: Replace DRM_DEBUG with drm_dbg_core in file and ioctl handling 2023-01-03 18:20:57 +01:00
drm_ioctl.c drm: Replace DRM_DEBUG with drm_dbg_core in file and ioctl handling 2023-01-03 18:20:57 +01:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c drm: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:30 +01:00
drm_legacy_misc.c
drm_legacy.h
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c drm/mipi-dbi: Support separate I/O regulator 2022-12-14 14:57:09 +01:00
drm_mipi_dsi.c Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
drm_mm.c
drm_mode_config.c drm/debugfs: create debugfs late register functions 2022-12-22 14:58:55 -03:00
drm_mode_object.c
drm_modes.c drm: Include <linux/of.h> where needed 2023-01-13 13:18:35 +01:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5 2023-02-15 10:46:05 +01:00
drm_panel.c
drm_pci.c
drm_plane_helper.c drm: Remove unnecessary include statements for drm_crtc_helper.h 2023-01-18 09:25:30 +01:00
drm_plane.c drm/docs: Explicitly document default CRTC background behavior 2023-01-04 16:12:15 +00:00
drm_prime.c
drm_print.c
drm_privacy_screen_x86.c
drm_privacy_screen.c
drm_probe_helper.c drm/probe_helper: sort out poll_running vs poll_enabled 2023-02-07 15:07:52 +01:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/simple-kms: Remove drm_gem_simple_display_pipe_prepare_fb() 2022-12-05 13:35:37 +01:00
drm_syncobj.c
drm_sysfs.c Driver Core changes for 6.2-rc1 2022-12-16 03:54:54 -08:00
drm_trace_points.c
drm_trace.h
drm_vblank_work.c
drm_vblank.c
drm_vm.c mm: replace vma->vm_flags direct modifications with modifier calls 2023-02-09 16:51:39 -08:00
drm_vma_manager.c drm/drm_vma_manager: Add drm_vma_node_allow_once() 2023-01-19 14:16:55 +01:00
drm_writeback.c
Kconfig drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
Makefile drm-misc-next for $kernel-version: 2023-01-24 17:36:29 +01:00