[Mesa-dev] [PATCH 3/3] isl: add support for Android libmesa_isl static library

Tapani Pälli tapani.palli at intel.com
Fri Aug 26 11:26:50 UTC 2016


On 08/26/2016 01:27 PM, Tapani Pälli wrote:
> Hi;
>
> This is patch is causing build issues for me, how was this tested?

(I'll send a patch proposal to fix the issues I encountered in a sec)

> See below for 2 questions:
>
>
> On 05/31/2016 01:20 AM, Mauro Rossi wrote:
>> isl library is needed to build i965, libmesa_isl static library is added
>> to fix related Android building errors.
>>
>> Any attempt to build libmesa_genxml as phony package module failed to
>> deliver
>> gen{7,75,8,9}_pack.h autogenerated headers, needed to build
>> libmesa_isl_gen{7,75,8,9}
>>
>> Due to constraints in the Android Build System, libmesa_genxml is
>> built as static library
>> and at least one source file needs to be compiled, so dummy.c is
>> autogenerated for this scope.
>>
>> libmesa_isl_gen{7,75,8,9} dependencies on libmesa_genxml are declared
>> using LOCAL_WHOLE_STATIC_LIBRARIES,
>> in order to avoid building errors due to missing
>> genxml/gen{7,75,8,9}_pack.h headers
>>
>> Cc: <mesa-stable at lists.freedesktop.org>
>> ---
>>  Android.mk                           |   3 +
>>  src/intel/genxml/Android.mk          |  82 ++++++++++++++++++
>>  src/intel/isl/Android.mk             | 157
>> +++++++++++++++++++++++++++++++++++
>>  src/mesa/drivers/dri/i965/Android.mk |   3 +-
>>  4 files changed, 244 insertions(+), 1 deletion(-)
>>  create mode 100644 src/intel/genxml/Android.mk
>>  create mode 100644 src/intel/isl/Android.mk
>>
>> diff --git a/Android.mk b/Android.mk
>> index 6a5596b..8ab80f3 100644
>> --- a/Android.mk
>> +++ b/Android.mk
>> @@ -48,6 +48,7 @@ MESA_DRI_MODULE_UNSTRIPPED_PATH :=
>> $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(M
>>
>>  MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
>>  MESA_PYTHON2 := python
>> +MESA_PYTHON3 := python3
>>
>>  classic_drivers := i915 i965
>>  gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g
>> radeonsi vmwgfx vc4 virgl
>> @@ -95,6 +96,8 @@ SUBDIRS := \
>>      src/mesa \
>>      src/util \
>>      src/egl \
>> +    src/intel/genxml \
>> +    src/intel/isl \
>>      src/mesa/drivers/dri
>>
>>  INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
>> diff --git a/src/intel/genxml/Android.mk b/src/intel/genxml/Android.mk
>> new file mode 100644
>> index 0000000..e0137d5
>> --- /dev/null
>> +++ b/src/intel/genxml/Android.mk
>> @@ -0,0 +1,82 @@
>> +# Copyright © 2016 Intel Corporation
>> +# Copyright © 2016 Mauro Rossi <issor.oruam at gmail.com>
>> +#
>> +# Permission is hereby granted, free of charge, to any person
>> obtaining a
>> +# copy of this software and associated documentation files (the
>> "Software"),
>> +# to deal in the Software without restriction, including without
>> limitation
>> +# the rights to use, copy, modify, merge, publish, distribute,
>> sublicense,
>> +# and/or sell copies of the Software, and to permit persons to whom the
>> +# Software is furnished to do so, subject to the following conditions:
>> +#
>> +# The above copyright notice and this permission notice shall be
>> included
>> +# in all copies or substantial portions of the Software.
>> +#
>> +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>> EXPRESS OR
>> +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>> MERCHANTABILITY,
>> +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
>> SHALL
>> +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
>> OR OTHER
>> +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
>> ARISING
>> +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
>> +# DEALINGS IN THE SOFTWARE.
>> +
>> +LOCAL_PATH := $(call my-dir)
>> +
>> +# Import variable GENERATED_FILES.
>> +include $(LOCAL_PATH)/Makefile.sources
>
> note that local path here will be equal to $MESA_TOP/src/intel/genxml
> which does not contain Makefile.sources, GENXML_GENERATED_FILES is
> defined in $MESA_TOP/src/intel/Makefile.sources instead?
>
>  +
>> +include $(CLEAR_VARS)
>> +
>> +LOCAL_MODULE := libmesa_genxml
>> +
>> +LOCAL_MODULE_CLASS := STATIC_LIBRARIES
>> +
>> +intermediates := $(call local-generated-sources-dir)
>> +
>> +# dummy.c source file is generated to meet the build system's rules.
>> +LOCAL_GENERATED_SOURCES += $(intermediates)/dummy.c
>> +
>> +$(intermediates)/dummy.c:
>> +    @mkdir -p $(dir $@)
>> +    @echo "Gen Dummy: $(PRIVATE_MODULE) <= $(notdir $(@))"
>> +    $(hide) touch $@
>> +
>> +# This is the list of auto-generated files headers
>> +LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/genxml/,
>> $(GENXML_GENERATED_FILES))
>> +
>> +define header-gen
>> +    @mkdir -p $(dir $@)
>> +    @echo "Gen Header: $(PRIVATE_MODULE) <= $(notdir $(@))"
>> +    $(hide) $(PRIVATE_SCRIPT) $(PRIVATE_XML) > $@
>> +endef
>> +
>> +$(intermediates)/genxml/gen6_pack.h: PRIVATE_SCRIPT :=
>> $(MESA_PYTHON3) $(LOCAL_PATH)/gen_pack_header.py
>> +$(intermediates)/genxml/gen6_pack.h: PRIVATE_XML :=
>> $(LOCAL_PATH)/gen6.xml
>> +$(intermediates)/genxml/gen6_pack.h: $(LOCAL_PATH)/gen6.xml
>> $(LOCAL_PATH)/gen_pack_header.py
>> +    $(call header-gen)
>> +
>> +$(intermediates)/genxml/gen7_pack.h: PRIVATE_SCRIPT :=
>> $(MESA_PYTHON3) $(LOCAL_PATH)/gen_pack_header.py
>> +$(intermediates)/genxml/gen7_pack.h: PRIVATE_XML :=
>> $(LOCAL_PATH)/gen7.xml
>> +$(intermediates)/genxml/gen7_pack.h: $(LOCAL_PATH)/gen7.xml
>> $(LOCAL_PATH)/gen_pack_header.py
>> +    $(call header-gen)
>> +
>> +$(intermediates)/genxml/gen75_pack.h: PRIVATE_SCRIPT :=
>> $(MESA_PYTHON3) $(LOCAL_PATH)/gen_pack_header.py
>> +$(intermediates)/genxml/gen75_pack.h: PRIVATE_XML :=
>> $(LOCAL_PATH)/gen75.xml
>> +$(intermediates)/genxml/gen75_pack.h: $(LOCAL_PATH)/gen75.xml
>> $(LOCAL_PATH)/gen_pack_header.py
>> +    $(call header-gen)
>> +
>> +$(intermediates)/genxml/gen8_pack.h: PRIVATE_SCRIPT :=
>> $(MESA_PYTHON3) $(LOCAL_PATH)/gen_pack_header.py
>> +$(intermediates)/genxml/gen8_pack.h: PRIVATE_XML :=
>> $(LOCAL_PATH)/gen8.xml
>> +$(intermediates)/genxml/gen8_pack.h: $(LOCAL_PATH)/gen8.xml
>> $(LOCAL_PATH)/gen_pack_header.py
>> +    $(call header-gen)
>> +
>> +$(intermediates)/genxml/gen9_pack.h: PRIVATE_SCRIPT :=
>> $(MESA_PYTHON3) $(LOCAL_PATH)/gen_pack_header.py
>> +$(intermediates)/genxml/gen9_pack.h: PRIVATE_XML :=
>> $(LOCAL_PATH)/gen9.xml
>> +$(intermediates)/genxml/gen9_pack.h: $(LOCAL_PATH)/gen9.xml
>> $(LOCAL_PATH)/gen_pack_header.py
>> +    $(call header-gen)
>> +
>> +LOCAL_EXPORT_C_INCLUDE_DIRS := \
>> +    $(MESA_TOP)/src/intel \
>> +    $(intermediates)
>> +
>> +include $(MESA_COMMON_MK)
>> +include $(BUILD_STATIC_LIBRARY)
>> diff --git a/src/intel/isl/Android.mk b/src/intel/isl/Android.mk
>> new file mode 100644
>> index 0000000..000859c
>> --- /dev/null
>> +++ b/src/intel/isl/Android.mk
>> @@ -0,0 +1,157 @@
>> +# Copyright © 2016 Intel Corporation
>> +# Copyright © 2016 Mauro Rossi <issor.oruam at gmail.com>
>> +#
>> +# Permission is hereby granted, free of charge, to any person
>> obtaining a
>> +# copy of this software and associated documentation files (the
>> "Software"),
>> +# to deal in the Software without restriction, including without
>> limitation
>> +# the rights to use, copy, modify, merge, publish, distribute,
>> sublicense,
>> +# and/or sell copies of the Software, and to permit persons to whom the
>> +# Software is furnished to do so, subject to the following conditions:
>> +#
>> +# The above copyright notice and this permission notice shall be
>> included
>> +# in all copies or substantial portions of the Software.
>> +#
>> +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>> EXPRESS OR
>> +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>> MERCHANTABILITY,
>> +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
>> SHALL
>> +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
>> OR OTHER
>> +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
>> ARISING
>> +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
>> +# DEALINGS IN THE SOFTWARE.
>> +#
>> +
>> +LOCAL_PATH := $(call my-dir)
>> +
>> +# Import variables LIBISL_FILES.
>> +include $(LOCAL_PATH)/Makefile.sources
>
> Here it's the same thing. ISL_FILES (not LIBISL_FILES like comment says)
> is defined in $MESA_TOP/src/intel/Makefile.sources, not in
> $MESA_TOP/src/intel/isl like using LOCAL_PATH would do.
>
>
>> +
>> +LIBISL_GENX_COMMON_INCLUDES := \
>> +    $(MESA_TOP)/src/ \
>> +    $(MESA_TOP)/src/mesa/drivers/dri/i965
>> +
>> +# ---------------------------------------
>> +# Build libisl_gen7
>> +# ---------------------------------------
>> +
>> +include $(CLEAR_VARS)
>> +
>> +LOCAL_MODULE := libmesa_isl_gen7
>> +
>> +LOCAL_SRC_FILES := $(ISL_GEN7_FILES)
>> +
>> +LOCAL_CFLAGS := -DGEN_VERSIONx10=70
>> +
>> +LOCAL_C_INCLUDES := $(LIBISL_GENX_COMMON_INCLUDES)
>> +
>> +LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_genxml
>> +
>> +include $(MESA_COMMON_MK)
>> +include $(BUILD_STATIC_LIBRARY)
>> +
>> +# ---------------------------------------
>> +# Build libisl_gen75
>> +# ---------------------------------------
>> +
>> +include $(CLEAR_VARS)
>> +
>> +LOCAL_MODULE := libmesa_isl_gen75
>> +
>> +LOCAL_SRC_FILES := $(ISL_GEN75_FILES)
>> +
>> +LOCAL_CFLAGS := -DGEN_VERSIONx10=75
>> +
>> +LOCAL_C_INCLUDES := $(LIBISL_GENX_COMMON_INCLUDES)
>> +
>> +LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_genxml
>> +
>> +include $(MESA_COMMON_MK)
>> +include $(BUILD_STATIC_LIBRARY)
>> +
>> +# ---------------------------------------
>> +# Build libisl_gen8
>> +# ---------------------------------------
>> +
>> +include $(CLEAR_VARS)
>> +
>> +LOCAL_MODULE := libmesa_isl_gen8
>> +
>> +LOCAL_SRC_FILES := $(ISL_GEN8_FILES)
>> +
>> +LOCAL_CFLAGS := -DGEN_VERSIONx10=80
>> +
>> +LOCAL_C_INCLUDES := $(LIBISL_GENX_COMMON_INCLUDES)
>> +
>> +LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_genxml
>> +
>> +include $(MESA_COMMON_MK)
>> +include $(BUILD_STATIC_LIBRARY)
>> +
>> +# ---------------------------------------
>> +# Build libisl_gen9
>> +# ---------------------------------------
>> +
>> +include $(CLEAR_VARS)
>> +
>> +LOCAL_MODULE := libmesa_isl_gen9
>> +
>> +LOCAL_SRC_FILES := $(ISL_GEN9_FILES)
>> +
>> +LOCAL_CFLAGS := -DGEN_VERSIONx10=90
>> +
>> +LOCAL_C_INCLUDES := $(LIBISL_GENX_COMMON_INCLUDES)
>> +
>> +LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_genxml
>> +
>> +include $(MESA_COMMON_MK)
>> +include $(BUILD_STATIC_LIBRARY)
>> +
>> +# ---------------------------------------
>> +# Build libisl
>> +# ---------------------------------------
>> +
>> +include $(CLEAR_VARS)
>> +
>> +LOCAL_MODULE := libmesa_isl
>> +
>> +LOCAL_SRC_FILES := $(ISL_FILES)
>> +
>> +LOCAL_C_INCLUDES := \
>> +    $(MESA_TOP)/src/mapi \
>> +    $(MESA_TOP)/src/mesa \
>> +    $(MESA_TOP)/src/mesa/drivers/dri/i965 \
>> +
>> +LOCAL_EXPORT_C_INCLUDE_DIRS := $(MESA_TOP)/src/intel
>> +
>> +LOCAL_WHOLE_STATIC_LIBRARIES := \
>> +    libmesa_isl_gen7 \
>> +    libmesa_isl_gen75 \
>> +    libmesa_isl_gen8 \
>> +    libmesa_isl_gen9
>> +
>> +# Autogenerated sources
>> +
>> +LOCAL_MODULE_CLASS := STATIC_LIBRARIES
>> +
>> +intermediates := $(call local-generated-sources-dir)
>> +
>> +LOCAL_SRC_FILES := $(filter-out $(ISL_GENERATED_FILES),
>> $(LOCAL_SRC_FILES))
>> +
>> +LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/,
>> $(ISL_GENERATED_FILES))
>> +
>> +define bash-gen
>> +    @mkdir -p $(dir $@)
>> +    @echo "Gen Bash: $(PRIVATE_MODULE) <= $(notdir $(@))"
>> +    $(hide) $(PRIVATE_SCRIPT) < $(PRIVATE_CSV) > $@
>> +endef
>> +
>> +isl_format_layout_deps := \
>> +    $(LOCAL_PATH)/isl_format_layout_gen.bash \
>> +    $(LOCAL_PATH)/isl_format_layout.csv
>> +
>> +$(intermediates)/isl_format_layout.c: PRIVATE_SCRIPT := bash -c
>> $(LOCAL_PATH)/isl_format_layout_gen.bash
>> +$(intermediates)/isl_format_layout.c: PRIVATE_CSV :=
>> $(LOCAL_PATH)/isl_format_layout.csv
>> +$(intermediates)/isl_format_layout.c: $(isl_format_layout_deps)
>> +    $(call bash-gen)
>> +
>> +include $(MESA_COMMON_MK)
>> +include $(BUILD_STATIC_LIBRARY)
>> diff --git a/src/mesa/drivers/dri/i965/Android.mk
>> b/src/mesa/drivers/dri/i965/Android.mk
>> index 9fd3a30..e8a379f 100644
>> --- a/src/mesa/drivers/dri/i965/Android.mk
>> +++ b/src/mesa/drivers/dri/i965/Android.mk
>> @@ -52,7 +52,8 @@ LOCAL_SRC_FILES := \
>>      $(i965_FILES)
>>
>>  LOCAL_WHOLE_STATIC_LIBRARIES := \
>> -    $(MESA_DRI_WHOLE_STATIC_LIBRARIES)
>> +    $(MESA_DRI_WHOLE_STATIC_LIBRARIES) \
>> +    libmesa_isl
>>
>>  LOCAL_SHARED_LIBRARIES := \
>>      $(MESA_DRI_SHARED_LIBRARIES) \
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list