[Buildroot] [PATCH 2/2] package/libpng: switch to cmake

Yann E. MORIN yann.morin.1998 at free.fr
Sat Sep 2 14:39:08 UTC 2017


Bernd, All,

On 2017-09-02 16:29 +0200, Bernd Kuhls spake thusly:
> We have no arch-specific options to control mips msa and powerpc vsx
> support so we disable these options atm to prevent build errors.

I'm not even reviewing the patch, because I noticed that a lot of
switch-to-cmake patches actually broke the build one way or the other.

So I would suggest that we forgo switching the buildsyustem of package
just to switch.

If upstream has changed, or there is a *compelling* reason to switch,
then so be it. In this case, the commit log *must* explain the rationale
for switching.

But switching for the sake of switching is a big no-no from me.

Regards,
Yann E. MORIN.

> Tested using this defconfig:
> 
> BR2_PACKAGE_LIBPNG=y
> 
>                 armv5-ctng-linux-gnueabi [ 1/47]: OK
>               armv7-ctng-linux-gnueabihf [ 2/47]: OK
>                         br-aarch64-glibc [ 3/47]: OK
>                            br-arcle-hs38 [ 4/47]: OK
>                             br-arm-basic [ 5/47]: OK
>                   br-arm-cortex-a9-glibc [ 6/47]: OK
>                    br-arm-cortex-a9-musl [ 7/47]: OK
>                    br-arm-cortex-m4-full [ 8/47]: OK
>                              br-arm-full [ 9/47]: OK
>                     br-arm-full-nothread [10/47]: OK
>                       br-arm-full-static [11/47]: OK
>                             br-bfin-full [12/47]: OK
>                    br-i386-pentium4-full [13/47]: OK
>                 br-i386-pentium-mmx-musl [14/47]: OK
>                        br-m68k-5208-full [15/47]: OK
>                       br-m68k-68040-full [16/47]: OK
>                     br-microblazeel-full [17/47]: OK
>                  br-mips32r6-el-hf-glibc [18/47]: OK
>                       br-mips64-n64-full [19/47]: OK
>                  br-mips64r6-el-hf-glibc [20/47]: OK
>                       br-mipsel-o32-full [21/47]: OK
>                           br-nios2-glibc [22/47]: OK
>                       br-openrisc-uclibc [23/47]: OK
>                br-powerpc-603e-basic-cpp [24/47]: OK
>              br-powerpc64le-power8-glibc [25/47]: OK
>                br-powerpc64-power7-glibc [26/47]: OK
>                   br-powerpc-e500mc-full [27/47]: OK
>                              br-sh4-full [28/47]: OK
>                         br-sparc64-glibc [29/47]: OK
>                          br-sparc-uclibc [30/47]: OK
>                     br-x86-64-core2-full [31/47]: OK
>                           br-x86-64-musl [32/47]: OK
>                           br-xtensa-full [33/47]: OK
>                      i686-ctng-linux-gnu [34/47]: OK
>                           linaro-aarch64 [35/47]: OK
>                               linaro-arm [36/47]: OK
>              mips64el-ctng_n32-linux-gnu [37/47]: OK
>              mips64el-ctng_n64-linux-gnu [38/47]: OK
>         powerpc-ctng_e500v2-linux-gnuspe [39/47]: OK
>                      sourcery-arm-armv4t [40/47]: OK
>                             sourcery-arm [41/47]: OK
>                      sourcery-arm-thumb2 [42/47]: OK
>                          sourcery-mips64 [43/47]: OK
>                            sourcery-mips [44/47]: OK
>                           sourcery-nios2 [45/47]: OK
>                          sourcery-x86-64 [46/47]: OK
>            x86_64-ctng_locales-linux-gnu [47/47]: OK
> 47 builds, 0 skipped, 0 build failed, 0 legal-info failed
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
> ---
>  ...3-CMakeLists.txt-Enable-building-asm-code.patch | 40 ++++++++++++++++++++++
>  package/libpng/libpng.mk                           | 22 ++++++++----
>  2 files changed, 56 insertions(+), 6 deletions(-)
>  create mode 100644 package/libpng/0003-CMakeLists.txt-Enable-building-asm-code.patch
> 
> diff --git a/package/libpng/0003-CMakeLists.txt-Enable-building-asm-code.patch b/package/libpng/0003-CMakeLists.txt-Enable-building-asm-code.patch
> new file mode 100644
> index 000000000..4bc5345fe
> --- /dev/null
> +++ b/package/libpng/0003-CMakeLists.txt-Enable-building-asm-code.patch
> @@ -0,0 +1,40 @@
> +From b47e0f5ceb525796dd98900613f3744d45331216 Mon Sep 17 00:00:00 2001
> +From: Bernd Kuhls <bernd.kuhls at t-online.de>
> +Date: Sat, 2 Sep 2017 15:09:30 +0200
> +Subject: [PATCH] CMakeLists.txt: Enable building asm code
> +
> +NEON support is provided by filter_neon.S which is currently not build
> +by cmake causing an error when linking with libpng16.so.16.32.0:
> +
> +[ 97%] Linking C executable pngstest
> +libpng16.so.16.32.0: undefined reference to `png_read_filter_row_avg4_neon'
> +libpng16.so.16.32.0: undefined reference to `png_read_filter_row_paeth3_neon'
> +libpng16.so.16.32.0: undefined reference to `png_read_filter_row_up_neon'
> +libpng16.so.16.32.0: undefined reference to `png_read_filter_row_avg3_neon'
> +libpng16.so.16.32.0: undefined reference to `png_read_filter_row_paeth4_neon'
> +libpng16.so.16.32.0: undefined reference to `png_read_filter_row_sub4_neon'
> +libpng16.so.16.32.0: undefined reference to `png_read_filter_row_sub3_neon'
> +
> +Patch sent upstream: https://github.com/glennrp/libpng/pull/174
> +
> +Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
> +---
> + CMakeLists.txt | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index 4803a720d..153d6caf6 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -31,7 +31,7 @@ endif(POLICY CMP0054)
> + 
> + set(CMAKE_CONFIGURATION_TYPES "Release;Debug;MinSizeRel;RelWithDebInfo")
> + 
> +-project(libpng C)
> ++project(libpng ASM C)
> + enable_testing()
> + 
> + set(PNGLIB_MAJOR 1)
> +-- 
> +2.11.0
> +
> diff --git a/package/libpng/libpng.mk b/package/libpng/libpng.mk
> index 2aa021712..6e915a47f 100644
> --- a/package/libpng/libpng.mk
> +++ b/package/libpng/libpng.mk
> @@ -15,17 +15,27 @@ LIBPNG_DEPENDENCIES = host-pkgconf zlib
>  HOST_LIBPNG_DEPENDENCIES = host-pkgconf host-zlib
>  LIBPNG_CONFIG_SCRIPTS = libpng$(LIBPNG_SERIES)-config libpng-config
>  
> +LIBPNG_CONF_OPTS += -DPNG_MIPS_MSA=off -DPNG_POWERPC_VSX=off
> +
> +ifeq ($(BR2_STATIC_LIBS),y)
> +LIBPNG_CONF_OPTS += -DPNG_SHARED=OFF -DPNG_STATIC=ON
> +else ifeq ($(BR2_SHARED_LIBS),y)
> +LIBPNG_CONF_OPTS += -DPNG_SHARED=ON -DPNG_STATIC=OFF
> +else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
> +LIBPNG_CONF_OPTS += -DPNG_SHARED=ON -DPNG_STATIC=ON
> +endif
> +
>  ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
> -LIBPNG_CONF_OPTS += --enable-arm-neon
> +LIBPNG_CONF_OPTS += -DPNG_ARM_NEON=on
>  else
> -LIBPNG_CONF_OPTS += --disable-arm-neon
> +LIBPNG_CONF_OPTS += -DPNG_ARM_NEON=off
>  endif
>  
>  ifeq ($(BR2_X86_CPU_HAS_SSE2),y)
> -LIBPNG_CONF_OPTS += --enable-intel-sse
> +LIBPNG_CONF_OPTS += -DPNG_INTEL_SSE=on
>  else
> -LIBPNG_CONF_OPTS += --disable-intel-sse
> +LIBPNG_CONF_OPTS += -DPNG_INTEL_SSE=off
>  endif
>  
> -$(eval $(autotools-package))
> -$(eval $(host-autotools-package))
> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))
> -- 
> 2.11.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list