On 23/07/15 18:50 +0100, Jonathan Wakely wrote:
On 23/07/15 14:27 +0200, David Tardon wrote:
Hi,
On Sat, Jul 18, 2015 at 12:46:51PM +0100, Jonathan Wakely wrote:
Any problems rebuilding either open a bug or feel free to email me or
ping me on IRC (my freenode nick is 'redi') and I'll be happy to help.
This is a work-in-progress list of FTBFS packages:
* Build failures:
- F23 + Rawhide
xs
This seems to be a bug caused by the new std::string in GCC-5, the
error I get is:
initial.cxx:2590:34: error: redefinition of 'const char X_7ffd70a41bb0 []'
static const char X_7ffd70a41bb0[] = "max-eval-depth";
^
initial.cxx:104:19: note: 'const char X_7ffd70a41bb0 [15]' previously defined here
static const char X_7ffd70a41bb0[] = "fn-%background";
^
which is due to this:
const char *name = str("S_%F", string);
if (strlen(name) > MAXVARNAME)
name = str("X_%zulx", (long long) string);
print("static const char %s[] = ", name);
This assumes that every const char* being printed has a unique
address, which is not a valid assumption, but probably worked with the
Copy-on-Write strings before GCC-5. Or maybe it's a change in
Boost.Foreach that causes it. Either way, the code makes invalid
assumptions.
I'm testing this patch.
The attached patch fixes the xs build for rawhide.
commit 2da49df85234094fa3f9c9dfabd25dcbb2740293
Author: Jonathan Wakely <jwakely@xxxxxxxxxx>
Date: Thu Jul 23 19:03:32 2015 +0100
Patch dump.cxx to make foreach loop use references not copies.
diff --git a/xs-dump-cxx.patch b/xs-dump-cxx.patch
new file mode 100644
index 0000000..18cee75
--- /dev/null
+++ b/xs-dump-cxx.patch
@@ -0,0 +1,11 @@
+--- dump.cxx~ 2015-07-23 18:48:30.115033012 +0100
++++ dump.cxx 2015-07-23 18:48:31.567038423 +0100
+@@ -263,7 +263,7 @@
+ const List *title = runfd(0, "initial.xs", 0);
+
+ printheader(title);
+- foreach (Dict::value_type var, vars) dumpvar(var.first.c_str(), var.second);
++ foreach (Dict::value_type& var, vars) dumpvar(var.first.c_str(), var.second);
+
+ /* these must be assigned in this order, or things just won't work */
+ varbuf << "\nstatic const struct { const char *name; List *value; } defs[] = {\n";
diff --git a/xs.spec b/xs.spec
index 6b78840..7e69d5b 100644
--- a/xs.spec
+++ b/xs.spec
@@ -2,7 +2,7 @@
Name: xs
Version: 0.1
-Release: 15.git%{githash}%{?dist}
+Release: 16.git%{githash}%{?dist}
Summary: Shell supporting functional programming
License: Public Domain
@@ -10,6 +10,7 @@ URL: https://github.com/frytvm
# downloaded from https://github.com/frytvm/XS/tarball/master
Source0: frytvm-XS-%{githash}.tar.gz
Patch0: xs-automake-1.12-bison-hxx.patch
+Patch1: xs-dump-cxx.patch
BuildRequires: automake
BuildRequires: bison
@@ -36,6 +37,7 @@ Frederic Koehler.
# patch for automake-1.12
%patch0 -p1 -b .orig
%endif
+%patch1 -p0 -b .orig
%build
@@ -59,6 +61,9 @@ make testxs
%changelog
+* Thu Jul 23 2015 Jonathan Wakely <jwakely@xxxxxxxxxx> 0.1-16.git
+- Patch dump.cxx to make foreach loop use references not copies.
+
* Wed Jul 22 2015 David Tardon <dtardon@xxxxxxxxxx> - 0.1-15.git9c19777
- rebuild for Boost 1.58
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct