Subversion Repositories pike

Compare Revisions

Ignore whitespace Rev 129 → Rev 128

/trunk/debian/changelog
1,13 → 1,3
pike7.8 (7.8.530-dfsg-1) experimental; urgency=low
 
* The latest official upstream "beta" release.
- Dropped dumping_problems.patch; incorporated upstream.
- unbreak_cross_compilation.patch partially incorporated upstream.
* Update debian/watch to point to
http://pike.ida.liu.se/download/pub/pike/beta/.
 
-- Magnus Holmgren <holmgren@debian.org> Wed, 06 Apr 2011 22:23:07 +0200
 
pike7.8 (7.8.352-dfsg-4) unstable; urgency=low
 
* Correct description of pike7.8-pcre (Closes: #597867).
/trunk/debian/patches/series
7,5 → 7,6
misplaced_MAXPATHLEN.patch
pthread_stub.patch
unbreak_cross_compilation.patch
dumping_problems.patch
nettle-2.1.patch
dump_timeout.patch
/trunk/debian/patches/dumping_problems.patch
0,0 → 1,133
From: Martin Stjernholm <mast@roxen.com>
Subject: Encode references to all ex-masters as if they are to the current master.
 
That since we cannot hope to eradicate all references to the old
master when replacing it, and in any case the decoder cannot hope to
find the same ex-master again.
 
If this creates a problem for someone using replace_master then it's
always possible to clear the is_pike_master variable in the old
master.
 
--- trunk/lib/master.pike.in 28 Jul 2010 10:29:59 -0000 1.474
+++ cvs/lib/master.pike.in 28 Jul 2010 22:58:01 -0000 1.476
@@ -85,6 +85,13 @@
//!
int show_if_constant_errors = 0;
+int is_pike_master = 0;
+// This integer variable should exist in any object that aspires to be
+// the master. It gets set to 1 when the master is installed, and is
+// therefore set in any object that is or has been the master. That
+// makes the Encoder class encode references to the master and all
+// ex-masters as references to the current master object.
+
// --- Functions begin here.
// Have to access some stuff without going through the resolver.
@@ -5092,6 +5099,11 @@
}
}
+ else if (what->is_pike_master) {
+ ENC_MSG (" is a master object\n");
+ ENC_RETURN ("o/master");
+ }
+
program prog;
if ((prog = objects_reverse_lookup (what)))
ENC_MSG (" found program in objects: %O\n", prog);
--- trunk/src/builtin_functions.c 27 Jul 2010 16:46:01 -0000 1.704
+++ cvs/src/builtin_functions.c 28 Jul 2010 22:51:00 -0000 1.705
@@ -7364,22 +7364,28 @@
*/
PMOD_EXPORT void f_replace_master(INT32 args)
{
+ struct object *new_master;
ASSERT_SECURITY_ROOT("replace_master");
if(!args)
SIMPLE_TOO_FEW_ARGS_ERROR("replace_master", 1);
if(Pike_sp[-args].type != T_OBJECT)
SIMPLE_BAD_ARG_ERROR("replace_master", 1, "object");
- if(!Pike_sp[-args].u.object->prog)
+ new_master = Pike_sp[-args].u.object;
+ if(!new_master->prog)
bad_arg_error("replace_master", Pike_sp-args, args, 1, "object", Pike_sp-args,
"Called with destructed object.\n");
if (Pike_sp[-args].subtype)
bad_arg_error("replace_master", Pike_sp-args, args, 1, "object", Pike_sp-args,
"Subtyped master objects are not supported yet.\n");
-
+
+ push_constant_text ("is_pike_master");
+ args++;
+ object_set_index (new_master, 0, Pike_sp - 1, &svalue_int_one);
+
free_object(master_object);
- master_object=Pike_sp[-args].u.object;
+ master_object=new_master;
add_ref(master_object);
free_program(master_program);
--- trunk/src/object.c 11 Jul 2010 10:08:02 -0000 1.310
+++ cvs/src/object.c 28 Jul 2010 22:50:59 -0000 1.311
@@ -658,6 +658,7 @@
}
{
+ int f;
ONERROR uwp;
/* fprintf(stderr, "Cloning master...\n"); */
@@ -673,7 +674,11 @@
call_c_initializers(master_object);
call_pike_initializers(master_object,0);
-
+
+ f = find_identifier ("is_pike_master", master_program);
+ if (f >= 0)
+ object_low_set_index (master_object, f, &svalue_int_one);
+
/* fprintf(stderr, "Master loaded.\n"); */
UNSET_ONERROR (uwp);
--- trunk/src/svalue.c 11 Jul 2010 12:39:10 -0000 1.261
+++ cvs/src/svalue.c 28 Jul 2010 22:46:39 -0000 1.262
@@ -30,14 +30,10 @@
#define sp Pike_sp
-PMOD_EXPORT const struct svalue svalue_undefined =
+PMOD_EXPORT struct svalue svalue_undefined =
SVALUE_INIT (T_INT, NUMBER_UNDEFINED, 0);
-PMOD_EXPORT const struct svalue svalue_int_zero = SVALUE_INIT_INT (0);
-#ifdef HAVE_UNION_INIT
-PMOD_EXPORT const struct svalue svalue_int_one = SVALUE_INIT_INT (1);
-#else
+PMOD_EXPORT struct svalue svalue_int_zero = SVALUE_INIT_INT (0);
PMOD_EXPORT struct svalue svalue_int_one = SVALUE_INIT_INT (1);
-#endif
#ifdef PIKE_DEBUG
PMOD_EXPORT const char msg_type_error[] =
--- trunk/src/svalue.h 18 Feb 2010 08:52:55 -0000 1.172
+++ cvs/src/svalue.h 28 Jul 2010 22:46:40 -0000 1.173
@@ -323,13 +323,8 @@
#define FUNCTION_BUILTIN USHRT_MAX
-extern PMOD_EXPORT const struct svalue svalue_undefined, svalue_int_zero;
-#ifdef HAVE_UNION_INIT
-extern PMOD_EXPORT const struct svalue svalue_int_one;
-#else
-/* The value 1 is initialized first thing in init_pike. */
-extern PMOD_EXPORT struct svalue svalue_int_one;
-#endif
+extern PMOD_EXPORT struct svalue svalue_undefined,
+ svalue_int_zero, svalue_int_one;
#define is_gt(a,b) is_lt(b,a)
#define is_ge(a,b) is_le(b,a)
/trunk/debian/patches/unbreak_cross_compilation.patch
4,25 → 4,43
## DP: Fix various breakage preventing cross compilation:
## DP: * Use the installed pike when needed, not the newly built one.
## DP: * Don't disable dynamic module loading just because we're cross-compiling
## DP: * Don't freak out because a test program cannot be run
 
@DPATCH@
--- a/src/configure
+++ b/src/configure
@@ -7348,7 +7348,7 @@ if test "x$enable_binary" = "xno"; then
RUNPIKE="USE_PIKE"
--- a/src/configure 2009-09-22 20:37:45.000000000 +0000
+++ b/src/configure 2010-05-04 09:44:55.000000000 +0000
@@ -8855,7 +8855,7 @@
RUNTPIKE="USE_PIKE"
elif test "x$cross_compiling" = "xyes"; then
- RUNPIKE="DEFAULT_RUNPIKE"
+ RUNPIKE="USE_PIKE"
RUNTPIKE="USE_PIKE"
else
RUNPIKE="DEFAULT_RUNPIKE"
@@ -73133,7 +73133,7 @@ EOF
if test "x$cross_compiling" = "xyes"; then
- RUNPIKE="DEFAULT_RUNPIKE"
+ RUNPIKE="USE_PIKE"
RUNTPIKE="USE_PIKE"
else
RUNPIKE="DEFAULT_RUNPIKE"
@@ -106926,7 +106926,7 @@
;;
esac
if test "$cross_compiling" = yes; then :
if test "$cross_compiling" = yes; then
- pike_cv_sys_dynamic_loading=no
+ pike_cv_sys_dynamic_loading=yes
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
--- a/src/modules/Mysql/configure 2010-05-19 10:20:10.745552500 +0000
+++ b/src/modules/Mysql/configure 2009-09-22 20:38:35.000000000 +0000
@@ -7018,13 +7018,7 @@
$as_echo "yes" >&6; }
if test "$cross_compiling" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+:
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
/trunk/debian/watch
1,4 → 1,4
version=3
 
opts=dversionmangle=s/-dfsg$// \
http://pike.ida.liu.se/download/pub/pike/beta/(7\.8\.\d+)/ .*/Pike-v(7\.8\.\d+)\.tar\.gz
http://pike.ida.liu.se/download/pub/pike/all/(7\.8\.\d+)/ .*/Pike-v(7\.8\.\d+)\.tar\.gz