LuaLanes / lanes

Lanes is a lightweight, native, lazy evaluating multithreading library for Lua 5.1 to 5.4.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Latest release missing includes? Or reverted good changes?

alerque opened this issue · comments

I'm having trouble building the latest 3.17.0 release for official Arch Linux packages:

In file included from src/cancel.h:8,
                 from src/cancel.c:40:
src/uniquekey.h:16:39: error: ‘uintptr_t’ undeclared here (not in a function)
   16 | #define MAKE_UNIQUE_KEY( p_) ((void*)(uintptr_t)(p_))
      |                                       ^~~~~~~~~
src/uniquekey.h:20:72: note: in expansion of macro ‘MAKE_UNIQUE_KEY’
   20 | #define DECLARE_CONST_UNIQUE_KEY( name_, p_) UniqueKey const name_ = { MAKE_UNIQUE_KEY( p_)}
      |                                                                        ^~~~~~~~~~~~~~~
src/cancel.h:44:8: note: in expansion of macro ‘DECLARE_CONST_UNIQUE_KEY’
   44 | static DECLARE_CONST_UNIQUE_KEY(CANCEL_ERROR, 0xe97d41626cc97577); // 'cancel_error' sentinel
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
src/cancel.h:10:1: note: ‘uintptr_t’ is defined in header ‘<stdint.h>’; did you forget to ‘#include <stdint.h>’?
    9 | #include "macros_and_utils.h"
  +++ |+#include <stdint.h>
   10 |

Error: Build error: Failed compiling object src/cancel.o
gcc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/lua-lanes/src=/usr/src/debug/lua-lanes -flto=auto -fPIC -I/usr/include/lua5.1 -c src/cancel.c -o src/cancel.o -Isrc

Reviewing the code changes, I ran across this old CHANGES entry:

* Get rid of uintptr_t to remove dependency on stdint.h

It looks like this is something that got fixed at some point and is now unfixed. Or is there supposed to be some new build time dependency?

I love optional stuff in standard headers :-).

Just fixed and moved the release/tag there (didn't feel like creating a new tag and release for what amounts to a compilation fix).