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