On Wed, Jan 31, 2018 at 12:46 PM, John Stultz <john.stultz@xxxxxxxxxx> wrote: > On Wed, Jan 31, 2018 at 8:01 AM, Emil Velikov <emil.l.velikov@xxxxxxxxx> wrote: >> On 30 January 2018 at 05:42, John Stultz <john.stultz@xxxxxxxxxx> wrote: >>> On Fri, Jan 26, 2018 at 10:33 AM, Emil Velikov <emil.l.velikov@xxxxxxxxx> wrote: >>>> Hi all, >>>> >>>> Couple of ideas/notes, >>>> >>>> On 10 January 2018 at 20:36, Rob Herring <robh@xxxxxxxxxx> wrote: >>>>> On Wed, Jan 10, 2018 at 1:09 PM, John Stultz <john.stultz@xxxxxxxxxx> wrote: >>>>>> On Wed, Jan 10, 2018 at 5:48 AM, Rob Herring <robh@xxxxxxxxxx> wrote: >>>>>>> On Tue, Jan 9, 2018 at 11:25 PM, John Stultz <john.stultz@xxxxxxxxxx> wrote: >>>>>>>> When building AOSP after updating libdrm project to the >>>>>>>> freedesktop/master branch, I've seen the following build errors: >>>>>>>> >>>>>>>> external/libdrm/intel/Android.mk: error: libdrm_intel >>>>>>> >>>>>>> This is only needed for i915 (not i965) now BTW. I'm not sure at what >>>>>>> point we stop caring about i915. >>>> If you're using any other Intel components - say Beignet or the va >>>> driver, I think those still use libdrm_intel. >>>> >>>> An alternative solution IMHO, is to drop/tweak the API to not bother >>>> libpciaccess. >>>> I have some ancient cleanup/rework branch >>>> >>>> https://github.com/evelikov/libdrm/commits/intel-remove-legacy >>> >>> I'm not opposed to this, but I'm really not familiar with intel use >>> cases and what would be ok or not there. >>> >>> >> The unfortunate part is that people familiar don't have to >> time/interest to weight in :-( >> I might give it another try, one of these days. Unless someone beats me to it. >> >>>>>>>> (SHARED_LIBRARIES android-arm64) missing libpciaccess >>>>>>>> (SHARED_LIBRARIES android-arm64) You can set >>>>>>>> ALLOW_MISSING_DEPENDENCIES=true in your environment if this is >>>>>>>> intentional, but that may defer real problems until later in the >>>>>>>> build. >>>>>>>> >>>>>>>> Using ALLOW_MISSING_DEPENDENCIES=true when building allows >>>>>>>> things to function properly, but is not ideal. >>>>>>>> >>>>>>>> So basically, while I'm not including the libdrm_intel package >>>>>>>> into the build, just the fact that the Android.mk file references >>>>>>>> libpciaccess which isn't a repo included in AOSP causes the build >>>>>>>> failure. >>>>>>>> >>>>>>>> So it seems we need some sort of conditional filter in the >>>>>>>> Android.mk to skip over it if we're not building for intel. >>>>>>>> >>>>>>>> This is my initial attempt at solving this. >>>>>>>> >>>>>>>> Feedback would be greatly appreciated! >>>>>>>> >>>>>>>> I note that in the AOSP version of libdrm, the reference to >>>>>>>> libpciaccess has been removed. See: >>>>>>>> https://android.googlesource.com/platform/external/libdrm/+/f6a1130dffae8de9ddd0c379066daf1df27fc8af%5E%21/ >>>>>>>> So I wonder if it make sense to instead remove this upstream as >>>>>>>> well? >>>>>>> >>>>>>> Only if we drop i915. >>>>>> >>>>>> To be more precise, drop i915 for Android builds (I'm not suggesting >>>>>> dropping it elsewhere, just for the Android.mk). I'm really not sure >>>>>> which devices might be affected. Anyone able to point me to someone in >>>>>> Intel who would know? >>>>> >>>>> The android-x86 folks would be the ones to ask. I added Chih-Wei. >>>>> >>>> A really silly question - how are you triggering any of this if you're >>>> building on !x86? >>>> Is that because the GPU driver is not selected thus you we fall-back >>>> to "build all"? >>> >>> I think its mostly due the fact we're using the toplevel Android.mk >>> which includes all Android.mk files in subdirectories. >>> >> That does not matter. Unless otherwise stated the objects are optional. >> Thus they should not be build, unless... >> >> Android changed the policy or you're somehow building stuff that's not required? > > I don't think its a policy, its seems its just how the toplevel > Android.mk file is setup: > https://cgit.freedesktop.org/drm/libdrm/tree/Android.mk#n63 > > Where it includes all the Android.mk from all subdirectories, which > pulls in the intel/Android.mk, which adds libpciaccess to the > LOCAL_SHARED_LIBRARIES > https://cgit.freedesktop.org/drm/libdrm/tree/intel/Android.mk#n36 That's not quite right. The build system descends directories til it finds an Android.mk. For subdirs under that Android.mk, the Android.mk file must descend. That's why we have: include $(call all-makefiles-under,$(LOCAL_PATH)) >>> I'm not sure quite how to select a gpu driver with the Android build >>> system, other then specifying it via a build variable, which is in >>> effect what I'm trying to do with this patch. >>> >>> Other ideas? >>> >> Based on your input seems like it's not set (grep for >> BOARD_GPU_DRIVERS), which results in "everything" being build. >> Thus optional libraries (like libdrm_intel) are pulled causing the problem. >> >> My earlier suggestion doesn't sound too crazy, although I'd check with >> RobH and the Android-x86 people. >> It might require one line change to the device manifest ;-) > > So I looked a bit at this, but it seems that just controls which > components gets added from the libkms dir, not the top level > directories. > > But we could add similar logic to the top level Android.mk file, using > the same BOARD_GPU_DRIVERS value. Hopefully that wouldn't break folks. I prefer to not expand the use of BOARD_GPU_DRIVERS and leave it to dependencies setting what to build. > Since I'm not sure what else would be a better idea, I'll take a spin > at that, but if you have thoughts on it please do let me know. I think we've beat this one to death. Just fix the TARGET_ARCH check to cover x86 and x86_64. The filter or filter-out make function should work for this. Rob _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel