[Buildroot] [PATCH v3] package/libgdal: new package

Thomas Petazzoni thomas.petazzoni at bootlin.com
Sun Jul 25 19:37:03 UTC 2021


Hello Dominik,

Thanks for your contribution, see below for some comments, actually
just one main comment.

On Fri, 28 May 2021 15:29:36 +0000
Dominik Michael Rauh <dmrauh at posteo.de> wrote:

> +# libgdal fails to detect NEON support on aarch64 or ARM platforms
> +# resp. VSX support on PowerPC based platforms. While linking an
> +# application with libgdal.so, we get an undefined reference to
> +# png_init_filter_functions_neon resp. png_init_filter_functions_vsx.
> +# Some files are missing in the libpng bundled with libgdal, in
> +# particular arm/arm_init.c and powerpc/powerpc_init.c, so disable NEON
> +# and VSX support completely when using libgdal's internal libpng.
> +
> +ifeq ($(BR2_PACKAGE_LIBPNG),y)
> +LIBGDAL_DEPENDENCIES += libpng
> +LIBGDAL_CONF_OPTS += --with-png=$(STAGING_DIR)/usr
> +else
> +LIBGDAL_CONF_OPTS += --with-png=internal
> +LIBGDAL_CPPFLAGS += -DPNG_ARM_NEON_OPT=0 -DPNG_POWERPC_VSX_OPT=0
> +endif

If libgdal can use an external png, then we only want to use the
external libpng, so libpng should be a mandatory dependency (I've tried
building using --without-png, and it fails).

However, you really need to look at the other configure options, and
handle them, at least by explicitly disabling the features.

It seems like there are a number of other libraries for which libgdal
is by default using an internal copy, and where we will want to use the
external library itself:

  DODS support:              no
  ECW support:               no
  Expat support:             no
  EXR support:               no
  FGDB support:              no
  FreeXL support:            no
  GEORASTER support:         no
  GEOS support:              no
  Google libkml support:     no
  GRASS support:             no
  GTA support:               no
  HDF4 support:              no
  HDF5 support:              no
  HDFS support:              no
  HEIF support:              no
  INFORMIX DataBlade support:no
  Ingres support:            no
  JP2Lura support:           no
  JPEG 12 bit:               yes
  JPEG-in-TIFF 12 bit:       yes
  JPEG JasPer support:       no
  JPEG-Lossless/CharLS:      no
  Kakadu support:            no
  Kea support:               no
  LERC support:              internal
  libdeflate support:        no
  LIBGEOTIFF support:        internal
  LIBGIF support:            internal
  LIBJPEG support:           internal
  LIBLZMA support:           no
  LIBPNG support:            no
  LIBTIFF support:           internal (BigTIFF=yes)
  libxml2 support:           no
  LIBZ support:              internal
  MDB support:               no
  MongoCXX v3 support:       no
  MongoDB support:           no
  MrSID/MG4 Lidar support:   no
  MrSID support:             no
  MSG support:               no
  MySQL support:             no
  NetCDF support:            no
  OCI support:               no
  ODBC support:              no
  OGDI support:              no
  OpenCL support:            no
  OpenJPEG support:          no
  PCIDSK support:            internal
  PCRaster support:          internal
  PCRE support:              no
  PDFium support:            no
  Podofo support:            no
  Poppler support:           no
  PostgreSQL support:        no
  QHull support:             internal
  Rasdaman support:          no
  RasterLite2 support:       no
  RDB support:               no
  SFCGAL support:            no
  SOSI support:              no
  SpatiaLite support:        no
  SQLite support:            no
  Teigha (DWG and DGNv8):    no
  TileDB support:            no
  userfaultfd support:       yes
  WebP support:              no
  Xerces-C support:          no
  ZSTD support:              no

Again, you don't need to support all those optional dependencies, but
for the ones you don't handle in libgdal.mk, make sure to pass
--without-<foo> so that libgdal doesn't pick it up "by chance".

Could you improve your package submission according to these guidelines?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the buildroot mailing list