From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/2] package/libpng: switch to cmake
Date: Sat, 2 Sep 2017 16:39:08 +0200 [thread overview]
Message-ID: <20170902143908.GA3396@scaer> (raw)
In-Reply-To: <20170902142956.22181-2-bernd.kuhls@t-online.de>
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@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@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@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. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2017-09-02 14:39 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-02 14:29 [Buildroot] [PATCH 1/2] package/libpng: bump version to 1.6.32 Bernd Kuhls
2017-09-02 14:29 ` [Buildroot] [PATCH 2/2] package/libpng: switch to cmake Bernd Kuhls
2017-09-02 14:39 ` Yann E. MORIN [this message]
2017-09-02 16:43 ` Thomas Petazzoni
2017-09-02 16:44 ` [Buildroot] [PATCH 1/2] package/libpng: bump version to 1.6.32 Thomas Petazzoni
2017-09-06 12:07 ` Peter Korsgaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170902143908.GA3396@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.