ping
any comments or suggestions about these issues before I update the port?

On Fri, Apr 03, 2020 at 01:32:18PM -0600, Thomas Frohwein wrote:
> Hi,
> 
> diff to tie up some loose ends brought up by tb@
> 
> Also amends the hl.h with an ifdef to fix a typedef collision when
> including the header with clang and C++ that was encountered with
> upcoming addition of hlsteam to games/steamworks-nosteam. Credit for
> the fix to brynet@.
> 
> [...]
> > The use of pthread_self() in patches/patch-src_std_thread_c looks fishy.
> > It generates this warning:
> > 
> > src/std/thread.c: In function 'hl_thread_id':
> > src/std/thread.c:374:9: warning: returning 'pthread_t' {aka 'struct pthread 
> > *'} from a function with return type 'int' makes integer from pointer 
> > without a cast
> >  [-Wint-conversion]
> >    return pthread_self();
> >           ^~~~~~~~~~~~~~
> > 
> > Is this intended and really correct?
> 
> It seems the better solution is to replace this with getthrid(2). So
> far, I haven't noticed runtime issues with either pthread_self(3) or
> getthrid(2). The build time warning is resolved with this.
> 
> > The second one is ugly but probably harmless:
> > 
> > ===>  Building for hashlink-1.10p0 
> > getconf: LONG_BIT: unknown variable
> > 
> > The Makefile tries to set some arch-specific things using this:
> > 
> > LBITS := $(shell getconf LONG_BIT)
> > ARCH ?= $(LBITS)
> > [...]
> > ifeq ($(ARCH),32)                       
> > CFLAGS += -I /usr/include/i386-linux-gnu
> > LIBFLAGS += -L/opt/libjpeg-turbo/lib    
> > else                                    
> > LIBFLAGS += -L/opt/libjpeg-turbo/lib64  
> > endif
> 
> diff removes the linux bitness detection.
> 
> ok?
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/lang/hashlink/Makefile,v
> retrieving revision 1.2
> diff -u -p -r1.2 Makefile
> --- Makefile  7 Mar 2020 00:30:59 -0000       1.2
> +++ Makefile  3 Apr 2020 19:24:44 -0000
> @@ -1,4 +1,4 @@
> -# $OpenBSD: Makefile,v 1.2 2020/03/07 00:30:59 cwen Exp $
> +# $OpenBSD: Makefile,v 1.1.1.1 2020/02/25 02:36:47 thfr Exp $
>  
>  # JIT segfaults without USE_WXNEEDED
>  USE_WXNEEDED =       Yes
> @@ -9,7 +9,7 @@ V =           1.10
>  GH_ACCOUNT = HaxeFoundation
>  GH_PROJECT = hashlink
>  GH_TAGNAME = ${V}
> -REVISION =   0
> +REVISION =   1
>  
>  SHARED_LIBS =        hl      0.0     # 1.10
>  
> Index: patches/patch-Makefile
> ===================================================================
> RCS file: /cvs/ports/lang/hashlink/patches/patch-Makefile,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 patch-Makefile
> --- patches/patch-Makefile    25 Feb 2020 02:36:47 -0000      1.1.1.1
> +++ patches/patch-Makefile    3 Apr 2020 19:24:44 -0000
> @@ -3,11 +3,17 @@ $OpenBSD: patch-Makefile,v 1.1.1.1 2020/
>  remove -m$(ARCH)
>  add versioning to libhl
>  {CFLAGS} -> (CFLAGS) to not get picked up by SUBST_CMD
> +remove Linux's 32-/64-bit detection
>  
>  Index: Makefile
>  --- Makefile.orig
>  +++ Makefile
> -@@ -6,11 +6,11 @@ INSTALL_DIR ?= $(PREFIX)
> +@@ -1,16 +1,14 @@
> + 
> +-LBITS := $(shell getconf LONG_BIT)
> +-ARCH ?= $(LBITS)
> + PREFIX ?= /usr/local
> + INSTALL_DIR ?= $(PREFIX)
>   
>   LIBS=fmt sdl ssl openal ui uv mysql
>   
> @@ -24,7 +30,7 @@ Index: Makefile
>   LIBTURBOJPEG = -lturbojpeg
>   
>   PCRE = include/pcre/pcre_chartables.o include/pcre/pcre_compile.o 
> include/pcre/pcre_dfa_exec.o \
> -@@ -80,7 +80,7 @@ RELEASE_NAME = osx
> +@@ -80,16 +78,9 @@ RELEASE_NAME = osx
>   else
>   
>   # Linux
> @@ -32,8 +38,17 @@ Index: Makefile
>  +CFLAGS += -fPIC -pthread
>   LFLAGS += -lm -Wl,-rpath,. -Wl,--export-dynamic -Wl,--no-undefined
>   
> - ifeq ($(ARCH),32)
> -@@ -123,34 +123,34 @@ uninstall:
> +-ifeq ($(ARCH),32)
> +-CFLAGS += -I /usr/include/i386-linux-gnu
> +-LIBFLAGS += -L/opt/libjpeg-turbo/lib
> +-else
> +-LIBFLAGS += -L/opt/libjpeg-turbo/lib64
> +-endif
> +-
> + LIBOPENAL = -lopenal
> + RELEASE_NAME = linux
> + 
> +@@ -123,34 +114,34 @@ uninstall:
>   libs: $(LIBS)
>   
>   libhl: ${LIB}
> @@ -78,7 +93,7 @@ Index: Makefile
>       
>   mesa:
>       (cd libs/mesa && make)
> -@@ -204,7 +204,7 @@ release_osx:
> +@@ -204,7 +195,7 @@ release_osx:
>   .SUFFIXES : .c .o
>   
>   .c.o :
> Index: patches/patch-src_hl_h
> ===================================================================
> RCS file: /cvs/ports/lang/hashlink/patches/patch-src_hl_h,v
> retrieving revision 1.2
> diff -u -p -r1.2 patch-src_hl_h
> --- patches/patch-src_hl_h    7 Mar 2020 00:30:59 -0000       1.2
> +++ patches/patch-src_hl_h    3 Apr 2020 19:24:44 -0000
> @@ -1,11 +1,12 @@
>  $OpenBSD: patch-src_hl_h,v 1.2 2020/03/07 00:30:59 cwen Exp $
>  
>  add OpenBSD to ifdef
> +don't typedef char{16,32}_t in clang with C++
>  
>  Index: src/hl.h
>  --- src/hl.h.orig
>  +++ src/hl.h
> -@@ -234,7 +234,7 @@ typedef uint16_t uchar;
> +@@ -234,11 +234,13 @@ typedef uint16_t uchar;
>   #   define USTR(str)        u##str
>   #else
>   #   include <stdarg.h>
> @@ -13,4 +14,10 @@ Index: src/hl.h
>  +#if defined(HL_IOS) || defined(HL_TVOS) || defined(HL_MAC) || 
> defined(__OpenBSD__)
>   #include <stddef.h>
>   #include <stdint.h>
> ++#if defined(__clang__) && !defined(__cplusplus)
>   typedef uint16_t char16_t;
> + typedef uint32_t char32_t;
> ++#endif
> + #else
> + #   include <uchar.h>
> + #endif
> Index: patches/patch-src_std_thread_c
> ===================================================================
> RCS file: /cvs/ports/lang/hashlink/patches/patch-src_std_thread_c,v
> retrieving revision 1.2
> diff -u -p -r1.2 patch-src_std_thread_c
> --- patches/patch-src_std_thread_c    7 Mar 2020 00:30:59 -0000       1.2
> +++ patches/patch-src_std_thread_c    3 Apr 2020 19:24:44 -0000
> @@ -1,6 +1,6 @@
>  $OpenBSD: patch-src_std_thread_c,v 1.2 2020/03/07 00:30:59 cwen Exp $
>  
> -enable thread_id for OpenBSD using pthread_self()
> +enable hl_thread_id for OpenBSD using getthrid(2)
>  
>  Index: src/std/thread.c
>  --- src/std/thread.c.orig
> @@ -10,7 +10,7 @@ Index: src/std/thread.c
>       pthread_threadid_np(NULL, &tid64);
>       return (pid_t)tid64;
>  +#elif defined(__OpenBSD__)
> -+    return pthread_self();
> ++    return getthrid();
>   #elif defined(SYS_gettid) && !defined(HL_TVOS)
>       return syscall(SYS_gettid);
>   #else
> 

Reply via email to