Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/2] package/grpc: 1.31.0
@ 2020-08-13 14:45 Michael Nosthoff
  2020-08-13 14:45 ` [Buildroot] [PATCH 1/2] package/re2: new package Michael Nosthoff
  2020-08-13 14:45 ` [Buildroot] [PATCH 2/2] package/grpc: bump version to 1.31.0 Michael Nosthoff
  0 siblings, 2 replies; 11+ messages in thread
From: Michael Nosthoff @ 2020-08-13 14:45 UTC (permalink / raw)
  To: buildroot

grpc 1.31.0 introduces an new dependency on Google RE2
for Regular Expression parsing.

This series adds RE2 as a new package and bumps
grpc to 1.31.0 with a dependency on RE2

Michael Nosthoff (2):
  package/re2: new package
  package/grpc: bump version to 1.31.0

 package/Config.in                             |  1 +
 .../0001-target-build-using-host-plugin.patch |  4 +--
 ...the-availability-of-pthread_setname_.patch |  7 +++---
 package/grpc/Config.in                        |  3 ++-
 package/grpc/grpc.hash                        |  2 +-
 package/grpc/grpc.mk                          | 12 +++++----
 package/re2/Config.in                         | 12 +++++++++
 package/re2/re2.hash                          |  3 +++
 package/re2/re2.mk                            | 25 +++++++++++++++++++
 9 files changed, 56 insertions(+), 13 deletions(-)
 create mode 100644 package/re2/Config.in
 create mode 100644 package/re2/re2.hash
 create mode 100644 package/re2/re2.mk

-- 
2.25.1

^ permalink raw reply	[flat|nested] 11+ messages in thread
* [Buildroot]  [PATCH 1/2] package/re2: new package
@ 2020-09-07 14:43 Michael Nosthoff
  2020-09-07 15:19 ` Thomas Petazzoni
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Nosthoff @ 2020-09-07 14:43 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

I'm back from vacation so I had a look at the pkg-cmake.mk.

On Sunday, August 30, 2020 16:34 CEST, Michael Nosthoff <buildroot@heine.tech> wrote: 

> >
> > Perhaps the issue is that we're not explicitly passing
> > -DBUILD_SHARED_LIBS=ON to host CMake packages in package/pkg-cmake.mk ?
> >
> > Could you have a look into this ?
> 
> 
> What I'm wondering: Should all host packages always be built as shared libs?
> 
> 
>  From the CMake Documentation [1] (which is a bit unclear) I assume that 
> as default
> CMake will build libs as static. So it might be a coincidence that all 
> existing host cmake packages
> built as shared as their default.
> 
> When comparing to package/pkg-autotools.mk I see that for host packages
> 
>  ??? --enable-shared --disable-static
> 
> is always set. So it would make sense to also add
> 
>  ?? -DBUILD_SHARED_LIBS=ON
> 
> 
> to cmake host build flags.
> 


I did a check on what might happen when we add -DBUILD_SHARED_LIBS to package/pkg-cmake.mk for host packages.

In Summary: a few packages change their output. Most stay stable. (see at the end for details)

Builds that change their output from .a to .so: host-clang, host-grpc, host-flatcc, host-libabseil-cpp, host-lld, host-pugixml
builds that break: host-doxygen

So for doxygen that is not good. They mix add_library calls which explicitly set STATIC and one that sets nothing. 
So this creates a .so but when it should be linked a .a is needed because the lib to be linked is static.
If we change the default doxygen would need an explicit -DBUILD_SHARED_LIBS=OFF Flag.

What I'm not sure about is the output of clang. Should this be built as a shared lib? For llvm this is explicitly set to static in the .mk.
For clang this is not done for host builds. Is this maybe an oversight?

So what do you think? Is this something we should go forward on or should I just change the re2 package?

Regards,
Michael


Detailed overview per package:

How is -DBUILD_SHARED_LIBS set and/or handled currently on the host packages?

host-cdrkit always uses ADD_LIBRARY with STATIC flag
host-clang not set explicitly for host, so it might change from STATIC to SHARED here. Is this intentional or an oversight (compared to llvm)? [1]
host-doxygen adds most libs with STATIC but not all -> breaks on linking
host-fatcat Does not build libs
host-flatbuffers uses its own FLATBUFFERS_BUILD_SHAREDLIB, host .mk build sets it to OFF
host-flatcc has no preference, CMakeList.txt states explicitly that it honors BUILD_SHARED_LIBS
host-grpc honors the flag, .mk sets nothing
host-json-c Builds static and shared by default, setting flag doesn't change that
host-kodi-jsonschemabuilder only builds executable
host-kodi-texturepacker only builds executable
host-libabseil-cpp honors the flag, .mk sets nothing
host-libnetconf2 always uses ADD_LIBRARY with SHARED flag [2]
host-libyang Builds SHARED when ENABLE_STATIC is not set, which is the case [3]
host-libzip builds as shared as default
host-lld honors the flag, .mk sets nothing
host-llvm set to OFF by BR .mk file [4]
host-lzo .mk sets -DENABLE_SHARED=ON -DENABLE_STATIC=OFF
host-mariadb ignores DBUILD_SHARED_LIBS
host-mfgtools .mk defines its own build step (and builds shared lib)
host-ninja only build executable
host-pugixml honors -DBUILD_SHARED_LIBS
host-sysrepo sets shared as default [5]
host-thrift Sets to ON when not on windows [6]
host-waylandpp Defaults to OFF but doesn't build libs for host (-DBUILD_LIBRARIES=OFF) [7]


[1] https://git.busybox.net/buildroot/tree/package/clang/clang.mk#n36
[2] https://github.com/CESNET/libnetconf2/blob/master/CMakeLists.txt#L117
[3] https://github.com/CESNET/libyang/blob/master/CMakeLists.txt#L204
[4] https://git.busybox.net/buildroot/tree/package/llvm/llvm.mk#n75
[5] https://github.com/sysrepo/sysrepo/blob/master/CMakeLists.txt#L187
[6] https://github.com/apache/thrift/blob/master/build/cmake/DefineOptions.cmake#L135
[7] https://github.com/NilsBrause/waylandpp/blob/master/CMakeLists.txt#L44

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-09-07 17:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-13 14:45 [Buildroot] [PATCH 0/2] package/grpc: 1.31.0 Michael Nosthoff
2020-08-13 14:45 ` [Buildroot] [PATCH 1/2] package/re2: new package Michael Nosthoff
2020-08-16 21:46   ` Thomas Petazzoni
2020-08-26 21:30   ` Thomas Petazzoni
2020-08-30 14:34     ` Michael Nosthoff
2020-08-13 14:45 ` [Buildroot] [PATCH 2/2] package/grpc: bump version to 1.31.0 Michael Nosthoff
2020-08-16 21:47   ` Thomas Petazzoni
  -- strict thread matches above, loose matches on Subject: below --
2020-09-07 14:43 [Buildroot] [PATCH 1/2] package/re2: new package Michael Nosthoff
2020-09-07 15:19 ` Thomas Petazzoni
2020-09-07 16:01   ` Michael Nosthoff
2020-09-07 17:18   ` Romain Naour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox