pikelang / Pike

Pike is a dynamic programming language with a syntax similar to Java and C. It is simple to learn, does not require long compilation passes and has powerful built-in data types allowing simple and really fast data manipulation.
http://pike.lysator.liu.se/
Other
194 stars 34 forks source link

Pike build error when gdbm version 1.13 is installed #2

Closed radix-platform closed 5 years ago

radix-platform commented 7 years ago

Whe we have installed gdbm-1.13 package in system we cannot build neither v8.0.404 (with binaries) nor 8.1.9 (from Git) due to build error of module Gdbm during installation process (make install).

To fix this issue I suggest the patch like follow:

diff -b --unified -Nr Pike-v8.0.404-orig/src/modules/Gdbm/gdbmmod.c Pike-v8.0.404/src/modules/Gdbm/gdbmmod.c
--- Pike-v8.0.404-orig/src/modules/Gdbm/gdbmmod.c   2015-12-31 22:50:31.000000000 +0300
+++ Pike-v8.0.404/src/modules/Gdbm/gdbmmod.c    2017-05-18 21:31:24.996852149 +0300
@@ -6,11 +6,15 @@

 #include "global.h"
 #include "gdbm_machine.h"
-#include "threads.h"
+
+#if defined(HAVE_GDBM_H) && defined(HAVE_LIBGDBM)
+
+#include <gdbm.h>

 /* Todo: make sure only one thread accesses the same gdbmmod */

 #include "interpret.h"
+#include "threads.h"
 #include "svalue.h"
 #include "stralloc.h"
 #include "module.h"
@@ -18,10 +22,6 @@
 #include "program.h"
 #include "module_support.h"

-#if defined(HAVE_GDBM_H) && defined(HAVE_LIBGDBM)
-
-#include <gdbm.h>
-
 #ifdef _REENTRANT
 static MUTEX_T gdbm_lock STATIC_MUTEX_INIT;
 #endif  

This patch is very simple and related to order of includes only. I have tested it on Slackware-14.2-current for package Pike-v8.0.404.tar.gz and HEAD of this repository [4f4ce7f71a139a9b20de7ae8f0b5f9730d6ed27c].

Best Regards, Andrey K.

grubba commented 7 years ago

This is most likely the issue I fixed yesterday in Pike 8.0.

I didn't have any problems compiling Pike 8.1 though.

radix-platform commented 7 years ago

undef fatal

Is not a good solution. Please change only order of includes! Because absence of problems at you does not mean their absence at your users yet ;)

diff -b --unified -Nr Pike-v8.0.404-orig/src/modules/Gdbm/gdbmmod.c
Pike-v8.0.404/src/modules/Gdbm/gdbmmod.c
--- Pike-v8.0.404-orig/src/modules/Gdbm/gdbmmod.c 2015-12-31
22:50:31.000000000 +0300
+++ Pike-v8.0.404/src/modules/Gdbm/gdbmmod.c 2017-05-18
21:31:24.996852149 +0300
@@ -6,11 +6,15 @@

#include "global.h"
#include "gdbm_machine.h"
-#include "threads.h"
+
+#if defined(HAVE_GDBM_H) && defined(HAVE_LIBGDBM)
+
+#include <gdbm.h>

/* Todo: make sure only one thread accesses the same gdbmmod */

#include "interpret.h"
+#include "threads.h"
#include "svalue.h"
#include "stralloc.h"
#include "module.h"
@@ -18,10 +22,6 @@
#include "program.h"
#include "module_support.h"

-#if defined(HAVE_GDBM_H) && defined(HAVE_LIBGDBM)
-
-#include <gdbm.h>
-
#ifdef _REENTRANT
static MUTEX_T gdbm_lock STATIC_MUTEX_INIT;
#endif 

On 2017-05-19 15:13, Henrik Grubbström wrote:

This is most likely the issue I fixed yesterday in Pike 8.0.

I didn't have any problems compiling Pike 8.1 though.

-- You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub [1], or mute the thread [2].

-- Andrey V.Kosteltsev

Links:

[1] https://github.com/pikelang/Pike/issues/2#issuecomment-302686775 [2] https://github.com/notifications/unsubscribe-auth/ASuC2K3Di-u1q5wJ7vCccW4j8rzysDjbks5r7Yd9gaJpZM4NgaaE