Bug 23382 - Nouveau DRM module out-of-tree compile errors
Summary: Nouveau DRM module out-of-tree compile errors
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: git
Hardware: All Linux (All)
: high blocker
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-17 16:07 UTC by Tavian Barnes
Modified: 2009-08-20 22:30 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Patch to fix drm_encoder_slave.h includes. (417 bytes, patch)
2009-08-17 16:07 UTC, Tavian Barnes
no flags Details | Splinter Review

Description Tavian Barnes 2009-08-17 16:07:00 UTC
Created attachment 28717 [details] [review]
Patch to fix drm_encoder_slave.h includes.

When doing an out-of-tree compile on the nouveau kernel module, recent GIT versions fail to compile without patching for a couple reasons.  The first can be fixed with the attached patch.

The second has to do with the fact that drivers/gpu/drm/nouveau/nouveau_drv.h declares the prototype for nouveau_encoder_connector_get, which relies on the type `struct nouveau_encoder*', defined in drivers/gpu/drm/nouveau/nouveau_encoder.h.  However, nouveau_encoder.h needs nouveau_drv.h for the type `struct nv04_output_reg'.  This circular dependency causes compilation of nouveau_drv.c to fail.

Also, any reason the include guard for nouveau_encoder.h is called __NOUVEAU_OUTPUT_H__?
Comment 1 Pekka Paalanen 2009-08-18 00:36:02 UTC
(In reply to comment #0)
> Created an attachment (id=28717) [details]
> Patch to fix drm_encoder_slave.h includes.

The equivalent patch is already present in the master-compat branch
(commit 1b527aded95176a2bc4b19f0191f9e6d412ad413), and has been sent to DRM
upstream. It will come to master branch in time, in the mean time you can
use master-compat.

> When doing an out-of-tree compile on the nouveau kernel module, recent GIT
> versions fail to compile without patching for a couple reasons.  The first can
> be fixed with the attached patch.

master-compat has always worked for me (since I try to remember to check and
fix it before pushing).

> The second has to do with the fact that drivers/gpu/drm/nouveau/nouveau_drv.h
> declares the prototype for nouveau_encoder_connector_get, which relies on the
> type `struct nouveau_encoder*', defined in
> drivers/gpu/drm/nouveau/nouveau_encoder.h.  However, nouveau_encoder.h needs
> nouveau_drv.h for the type `struct nv04_output_reg'.  This circular dependency
> causes compilation of nouveau_drv.c to fail.

I've never seen this problem. In what I see, the prototype for nouveau_encoder_connector_get() is in nouveau_encoder.h. Okay, it has already
been fixed in commit 8745851d364bc175d06d4de3cfa47cd65c399a04.

> Also, any reason the include guard for nouveau_encoder.h is called
> __NOUVEAU_OUTPUT_H__?

Indeed, I'll fix that.
Comment 2 Pekka Paalanen 2009-08-18 01:52:52 UTC
The include guard fix is in master, commit 2b4837bb34c053f3c81c8a28b52a0f679a71acac.

Let's keep this bug open until the drm_encoder_slave.h fix arrives to master.
Comment 3 Pekka Paalanen 2009-08-20 22:30:57 UTC
All fixed in master.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.