public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [ITA] ocl-icd
@ 2023-09-11 11:43 Takashi Yano
  2023-09-12 12:46 ` Jon Turney
  0 siblings, 1 reply; 2+ messages in thread
From: Takashi Yano @ 2023-09-11 11:43 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 103 bytes --]

I'd like to adopt the ocl-icd package.
Thanks in advance.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>

[-- Attachment #2: 2.2.9-cygwin-tests.patch --]
[-- Type: text/plain, Size: 2030 bytes --]

--- origsrc/ocl-icd-2.2.9/Makefile.am	2015-06-08 13:25:46.734101400 -0500
+++ src/ocl-icd-2.2.9/Makefile.am	2016-04-12 16:13:58.523793300 -0500
@@ -64,15 +64,15 @@ check_DATA = vendors/dummycl.icd vendors
 CLEANFILES += vendors/dummycl.icd vendors/dummycl2.icd vendors/dummycl-noext.icd
 vendors/dummycl.icd:
 	$(mkdir_p) vendors
-	echo "$(CURDIR)/.libs/libdummycl.so" > $@
+	echo "$(CURDIR)/.libs/cygdummycl.dll" > $@
 
 vendors/dummycl2.icd:
 	$(mkdir_p) vendors
-	echo "$(CURDIR)/.libs/libdummycl2.so" > $@
+	echo "$(CURDIR)/.libs/cygdummycl2.dll" > $@
 
 vendors/dummycl-noext.icd:
 	$(MKDIR_P) vendors
-	echo "$(CURDIR)/.libs/libdummycl-noext.so" > $@
+	echo "$(CURDIR)/.libs/cygdummycl-noext.dll" > $@
 
 clean-local: mostlyclean-generic clean-generic
 	-rmdir vendors
@@ -150,7 +148,7 @@ update-database: icd_generator.rb run_du
 
 .PHONY: install_test_lib uninstall_test_lib
 install_test_lib:
-	sudo bash -c 'echo "$(CURDIR)/.libs/libdummycl.so" > /etc/OpenCL/vendors/dummycl.icd'
+	sudo bash -c 'echo "$(CURDIR)/.libs/cygdummycl.dll" > /etc/OpenCL/vendors/dummycl.icd'
 
 uninstall_test_lib:
 	sudo rm -f /etc/OpenCL/vendors/dummycl.icd
--- origsrc/ocl-icd-2.2.9/icd_generator.rb	2015-12-16 08:59:05.162882700 -0600
+++ src/ocl-icd-2.2.9/icd_generator.rb	2016-04-12 15:11:13.461191100 -0500
@@ -290,6 +290,13 @@ EOF
 #include <stdio.h>
 #include <dlfcn.h>
 
+#ifdef __CYGWIN__
+static void *RTLD_NEXT = NULL;
+#define INIT(x) if(!RTLD_NEXT) RTLD_NEXT = dlopen("cygOpenCL-1.dll", 0);
+#else
+#define INIT(x)
+#endif
+
 EOF
     run_dummy_icd_weak += "#pragma GCC diagnostic push\n"
     run_dummy_icd_weak += "#  pragma GCC diagnostic ignored \"-Wcpp\"\n"
@@ -315,6 +322,7 @@ EOF
         first_parameter = first_parameter[0][0..-2]
       end
       fps = first_parameter.split
+      run_dummy_icd_weak += "  INIT()\n"
       run_dummy_icd_weak += "  void (*p)()=dlsym(RTLD_NEXT, \"#{func_name}\");\n"
       ps = parameters.split(",")
       ps = ps.collect { |p|

[-- Attachment #3: ocl-icd.cygport --]
[-- Type: text/plain, Size: 1081 bytes --]

NAME="ocl-icd"
VERSION=2.3.2
RELEASE=1
LICENSE="BSD-2-Clause"
CATEGORY="Libs"
SUMMARY="OpenCL ICD loader"
DESCRIPTION="OpenCL implementations are provided as ICD (Installable Client
Driver). An OpenCL program can use several ICD thanks to the use of an ICD
Loader as provided by this project."
HOMEPAGE="https://github.com/OCL-dev/ocl-icd/"
SRC_URI="https://github.com/OCL-dev/ocl-icd/archive/refs/tags/v${VERSION}.tar.gz"
PATCH_URI="
	2.2.9-cygwin-tests.patch
"

PKG_NAMES="libOpenCL1 libOpenCL-devel"
libOpenCL1_REQUIRES="libpocl2" # only currently working backend
libOpenCL1_CONTENTS="
	usr/bin/cygOpenCL-1.dll
	usr/share/doc/
"
libOpenCL_devel_CONTENTS="
	usr/bin/cllayerinfo.exe
	usr/include/CL/
	usr/include/ocl_icd.h
	usr/lib/libOpenCL.dll.a
	usr/lib/pkgconfig/OpenCL.pc
	usr/lib/pkgconfig/ocl-icd.pc
	usr/share/man/man7/libOpenCL*
"

CYGCONF_ARGS="--enable-official-khronos-headers"

src_install() {
	cd ${B}
	cyginstall

	includeinto CL
	doinclude ${S}/khronos-headers/CL/{cl,cl_[^d]*,opencl}.h
}

BUILD_REQUIRES="asciidoc xmlto"

[-- Attachment #4: ocl-icd-2.3.2-1.src.patch --]
[-- Type: text/plain, Size: 2318 bytes --]

--- origsrc/ocl-icd-2.3.2/Makefile.am	2023-09-10 19:42:53.360404200 +0900
+++ src/ocl-icd-2.3.2/Makefile.am	2023-09-10 19:54:18.819354400 +0900
@@ -48,7 +48,7 @@ libOpenCL_la_CFLAGS= $(NO_DEPRECATED_DEC
 
 libOpenCL_la_SOURCES = ocl_icd_loader.c ocl_icd_loader.h ocl_icd_debug.h
 nodist_libOpenCL_la_SOURCES = ocl_icd_loader_gen.c ocl_icd.h
-libOpenCL_la_LDFLAGS = -version-info 1:0:0 $(PTHREAD_CFLAGS)
+libOpenCL_la_LDFLAGS = -no-undefined -version-info 1:0:0 $(PTHREAD_CFLAGS)
 libOpenCL_la_LIBADD = $(PTHREAD_LIBS)
 if USE_MAP
 libOpenCL_la_LDFLAGS += -Wl,--version-script,ocl_icd_loader_gen.map
@@ -103,25 +103,23 @@ stamp-generator-dummy: icd_generator.rb
 	$(RUBY) $< --mode generate --database $(srcdir)/ocl_interface.yaml
 	echo "timestamp" > $@
 
-# noinst_LTLIBRARIES would be the correct thing but then libtool
-# only built non shared version :-( So, declaring the libs as
-# pkglib_LTLIBRARIES and using an install hook to remove them.
-pkglib_LTLIBRARIES = libdummycl.la libdummycl2.la libdummycl-noext.la libdummylayer.la
-install-exec-hook::
-	$(RM) -r $(DESTDIR)$(pkglibdir)
+noinst_LTLIBRARIES = libdummycl.la libdummycl2.la libdummycl-noext.la
 libdummycl_la_SOURCES = libdummy_icd.c libdummy_icd.h
 nodist_libdummycl_la_SOURCES = libdummy_icd_gen.c libdummy_icd_gen.h
 libdummycl_la_LDFLAGS = -module
+libdummycl_la_LDFLAGS += -rpath `pwd` -no-undefined -avoid-version
 libdummycl_noext_la_SOURCES = $(libdummycl_la_SOURCES)
 nodist_libdummycl_noext_la_SOURCES = $(nodist_libdummycl_la_SOURCES)
 libdummycl_noext_la_LDFLAGS = -module
+libdummycl_noext_la_LDFLAGS += -rpath `pwd` -no-undefined -avoid-version
 libdummycl_noext_la_CPPFLAGS = $(AM_CPPFLAGS) -DICD_WITHOUT_EXTENSION
 libdummycl2_la_SOURCES = $(libdummycl_la_SOURCES)
 nodist_libdummycl2_la_SOURCES = $(nodist_libdummycl_la_SOURCES)
 libdummycl2_la_LDFLAGS = -module
+libdummycl2_la_LDFLAGS += -rpath `pwd` -no-undefined -avoid-version
 libdummycl2_la_CPPFLAGS = $(AM_CPPFLAGS) -DICD_SUFFIX=\"2\"
-nodist_libdummylayer_la_SOURCES = dummy_icd_layer_gen.c
-libdummylayer_la_LDFLAGS = -module
+#nodist_libdummylayer_la_SOURCES = dummy_icd_layer_gen.c
+#libdummylayer_la_LDFLAGS = -module
 
 noinst_PROGRAMS=run_dummy_icd_through_our_ICDL
 run_dummy_icd_through_our_ICDL_SOURCES = run_dummy_icd.c

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

* Re: [ITA] ocl-icd
  2023-09-11 11:43 [ITA] ocl-icd Takashi Yano
@ 2023-09-12 12:46 ` Jon Turney
  0 siblings, 0 replies; 2+ messages in thread
From: Jon Turney @ 2023-09-12 12:46 UTC (permalink / raw)
  To: Takashi Yano, cygwin-apps

On 11/09/2023 12:43, Takashi Yano via Cygwin-apps wrote:
> I'd like to adopt the ocl-icd package.
> Thanks in advance. 

Done (for all three).

I've added ocd-icd-, openal and portaudio to your packages.

Thanks!


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

end of thread, other threads:[~2023-09-12 12:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-11 11:43 [ITA] ocl-icd Takashi Yano
2023-09-12 12:46 ` Jon Turney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).