Current-Users archive

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

legacy DRM UMS vs. "options DRM_LEGACY"



I have several custom kernels for i386 machines which I can no-longer
build since the introduction of "options DRM_LEGACY".

These kernels are for machines with

  ATI mach64, rage128, and/or old radeon (R100)

As such, these kernels have all the DRMKMS drivers disabled and one
or more of the legacy DRM (UMS) drivers:

  mach64drm* at drm?
  r128drm*   at drm?
  radeondrm* at drm?

enabled.


A special case kernel with no DRM drivers at all (due to PAE being
incompatible with [at least] i915drmkms) failed until

  no options DRM_LEGACY

was added to the kernel config file.


Kernels with the above legacy DRM drivers enabled fails with a plethora
of either multiple symbol definitions or undefined references at final
link time.

For a kernel with:

# RACKMOUNT - Kernel for Dell PowerEdge 750, 2[56]50; HP NetServer LP1000r,
# IBM eServer x306
# (Disable DRMKMS stuff, enable various UMS DRM drivers.)
[...]
mach64drm*      at drm?         # mach64 (3D Rage Pro, Rage) DRM driver
radeondrm*      at drm?         # ATI Radeon DRM driver
no i915drmkms*  at pci?
no intelfb*     at intelfbbus?
no radeon*      at pci?
no radeondrmkmsfb*      at radeonfbbus?
no nouveau*     at pci?
no nouveaufb*   at nouveaufbbus?
[...]

a snippet of the failures appears as:

#      link  RACKMOUNT/netbsd
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld -Map netbsd.map --cref -T netbsd.ldscript -Ttext c0100000 -e start -X -o netbsd ${SYSTEM_OBJ:[@]:Nswapnetbsd.o} ${EXTRA_OBJ} vers.o swapnetbsd.o
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld: drm_agp_hook.o: in function `drm_agp_init':
/x/current/src/sys/external/bsd/drm2/drm/drm_agp_hook.c:140: multiple definition of `drm_agp_init'; drm_agpsupport.o:/x/current/src/sys/external/bsd/drm/dist/bsd-core/drm_agpsupport.c:404: first defined here
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld: drm_agp_hook.o: in function `drm_agp_acquire':
/x/current/src/sys/external/bsd/drm2/drm/drm_agp_hook.c:178: multiple definition of `drm_agp_acquire'; drm_agpsupport.o:/x/current/src/sys/external/bsd/drm/dist/bsd-core/drm_agpsupport.c:156: first defined here
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld: drm_agp_hook.o: in function `drm_agp_release':
/x/current/src/sys/external/bsd/drm2/drm/drm_agp_hook.c:187: multiple definition of `drm_agp_release'; drm_agpsupport.o:/x/current/src/sys/external/bsd/drm/dist/bsd-core/drm_agpsupport.c:178: first defined here
[...]
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld: drm_agpsupport.o: in function `drm_agp_bind':
/x/current/src/sys/external/bsd/drm/dist/bsd-core/drm_agpsupport.c:325: undefined reference to `drm_debug_flag'
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld: drm_agpsupport.o: in function `drm_agp_init':
/x/current/src/sys/external/bsd/drm/dist/bsd-core/drm_agpsupport.c:413: undefined reference to `drm_debug_flag'
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld: /x/current/src/sys/external/bsd/drm/dist/bsd-core/drm_agpsupport.c:413: undefined reference to `drm_debug_flag'
/r0/build/current/tools/amd64/bin/i486--netbsdelf-ld: drm_drawable.o: in function `drm_adddraw':
/x/current/src/sys/external/bsd/drm/dist/bsd-core/drm_drawable.c:90: undefined reference to `drm_debug_flag'
[...]

and similar failures for the case of radeondrm.

Adding

  no options DRM_LEGACY

seems not to make any difference in the reported errors.


How may I get these kernels to build again?


-- 
|/"\ John D. Baker, KN5UKS               NetBSD     Darwin/MacOS X
|\ / jdbaker[snail]consolidated[flyspeck]net  OpenBSD            FreeBSD
| X  No HTML/proprietary data in email.   BSD just sits there and works!
|/ \ GPGkeyID:  D703 4A7E 479F 63F8 D3F4  BD99 9572 8F23 E4AD 1645


Home | Main Index | Thread Index | Old Index