* [Buildroot] [PATCH] package/picotool: add patch to fix sparc static build
@ 2024-08-07 15:09 Marcus Hoffmann via buildroot
2024-08-07 20:05 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Marcus Hoffmann via buildroot @ 2024-08-07 15:09 UTC (permalink / raw)
To: buildroot; +Cc: Marcus Hoffmann
Fixes: http://autobuild.buildroot.net/results/20d2fc02b7ca4c19b22b5853dccd8e55a052db10/
Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
---
...lso-link-to-additional-package-confi.patch | 40 +++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 package/picotool/0001-CMakeLists.txt-also-link-to-additional-package-confi.patch
diff --git a/package/picotool/0001-CMakeLists.txt-also-link-to-additional-package-confi.patch b/package/picotool/0001-CMakeLists.txt-also-link-to-additional-package-confi.patch
new file mode 100644
index 0000000000..b80de67b8a
--- /dev/null
+++ b/package/picotool/0001-CMakeLists.txt-also-link-to-additional-package-confi.patch
@@ -0,0 +1,40 @@
+From fc86e05ea6a2976d0e1004d20b5bf3e693621253 Mon Sep 17 00:00:00 2001
+From: Marcus Hoffmann <marcus.hoffmann@othermo.de>
+Date: Wed, 7 Aug 2024 16:49:53 +0200
+Subject: [PATCH] CMakeLists.txt: also link to additional package-config
+ libraries
+
+LibUSB might specify additional libraries to link to via package-config
+(i.e. libatomic where this isn't a builtin [1]). These are correctly
+discovered by the call to pkg_check_modules and put into the
+PC_LIBUSB_LIBRARIES variable but then never added to the actual linking
+step.
+
+Fix that by additionally adding them behind the libusb library
+discovered by the find_library call().
+
+[1] https://github.com/libusb/libusb/blob/v1.0.27/configure.ac#L184
+
+Upstream: https://github.com/raspberrypi/picotool/pull/103
+Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
+---
+ CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ff3e787..d6e41da 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,7 +58,8 @@ else()
+ pico_platform_headers
+ pico_usb_reset_interface_headers
+ picoboot_connection_cxx
+- ${LIBUSB_LIBRARIES})
++ ${LIBUSB_LIBRARIES}
++ ${PC_LIBUSB_LIBRARIES})
+ # allow `make install`
+ install(TARGETS picotool RUNTIME DESTINATION bin)
+ endif()
+--
+2.34.1
+
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Buildroot] [PATCH] package/picotool: add patch to fix sparc static build
2024-08-07 15:09 [Buildroot] [PATCH] package/picotool: add patch to fix sparc static build Marcus Hoffmann via buildroot
@ 2024-08-07 20:05 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-08-07 20:05 UTC (permalink / raw)
To: Marcus Hoffmann via buildroot; +Cc: Marcus Hoffmann, Marcus Hoffmann
Hello Marcus,
On Wed, 7 Aug 2024 17:09:52 +0200
Marcus Hoffmann via buildroot <buildroot@buildroot.org> wrote:
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index ff3e787..d6e41da 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -58,7 +58,8 @@ else()
> + pico_platform_headers
> + pico_usb_reset_interface_headers
> + picoboot_connection_cxx
> +- ${LIBUSB_LIBRARIES})
> ++ ${LIBUSB_LIBRARIES}
> ++ ${PC_LIBUSB_LIBRARIES})
Thanks for working on this. Unfortunately, while this patch perhaps
works for you, it might breaks things for systems where pkg-config is
not available: you unconditionally use ${PC_LIBUSB_LIBRARIES}, which
will only have a value if pkg-config is used. Instead could you try
something like this:
diff --git a/cmake/FindLIBUSB.cmake b/cmake/FindLIBUSB.cmake
index 169f594..7ae02b3 100644
--- a/cmake/FindLIBUSB.cmake
+++ b/cmake/FindLIBUSB.cmake
@@ -17,14 +17,18 @@ else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_LIBUSB libusb-1.0)
+ IF (${PC_LIBUSB_FOUND})
+ SET(LIBUSB_INCLUDE_DIR ${PC_LIBUSB_INCLUDE_DIRS})
+ SET(LIBUSB_LIBRARIES ${PC_LIBUSB_LIBRARIES})
+ ENDIF ()
+ ENDIF ()
+ IF (NOT ${PC_LIBUSB_FOUND})
+ FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h
+ HINTS $ENV{LIBUSB_ROOT}/include/libusb-1.0)
+ FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb-1.0 usb-1.0 usb
+ HINTS $ENV{LIBUSB_ROOT}/VS2019/MS32/static)
+ include(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
+ MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
ENDIF ()
- FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h
- HINTS $ENV{LIBUSB_ROOT}/include/libusb-1.0
- PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
- FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb-1.0 usb-1.0 usb
- HINTS $ENV{LIBUSB_ROOT}/VS2019/MS32/static
- PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
- include(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
- MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
The logic is:
- If pkg-config has found the library, assign LIBUSB_INCLUDE_DIR and
LIBUSB_LIBRARIES to the values found by pkg-config
- If pkg-config has not found the library, proceed with find_path() and
find_library().
Of course, we drop the hints passed to find_path() and find_library()
that were results of pkg-config... as if pkg-config has returned
meaningful results, we will no longer be calling find_path() and
find_library().
I am not 100% sure of my change (I did not even test it), but I believe
it is closer to something that has a chance of being acceptable
upstream.
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-08-07 20:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-07 15:09 [Buildroot] [PATCH] package/picotool: add patch to fix sparc static build Marcus Hoffmann via buildroot
2024-08-07 20:05 ` Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox