summaryrefslogtreecommitdiff
path: root/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch
diff options
context:
space:
mode:
authorMichał Masłowski <mtjm@mtjm.eu>2013-04-13 09:30:32 +0200
committerMichał Masłowski <mtjm@mtjm.eu>2013-04-13 09:30:32 +0200
commitb2b3a3e5241f31d00189615d3a86d5e0efd2ca25 (patch)
tree38cbc9ae8f219a9a921732d6132b50ba57ba7dab /extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch
parenta4a706ff05afab9bb61870c0049aedb23072cec1 (diff)
parent8f0418e4a239ba973834592537b474d3aac52d5b (diff)
Merge branch 'master' of ssh://parabolagnulinux.org:1863/home/parabola/abslibre-pre-mips64el
Conflicts: community/fcitx-mozc/PKGBUILD core/libcap/PKGBUILD extra/ncmpc/PKGBUILD extra/php/PKGBUILD extra/sqlite/PKGBUILD libre/hplip-libre/PKGBUILD libre/icecat/PKGBUILD
Diffstat (limited to 'extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch')
-rw-r--r--extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch b/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch
new file mode 100644
index 000000000..cb2378a78
--- /dev/null
+++ b/extra/samba/samba-4.0.3-fix_pidl_with_gcc48.patch
@@ -0,0 +1,60 @@
+From 1ac743a7d0d20e16fc325749d593edaaed89d706 Mon Sep 17 00:00:00 2001
+From: Alexander Bokovoy <ab@samba.org>
+Date: Wed, 6 Feb 2013 10:17:57 +0200
+Subject: [PATCH] PIDL: fix parsing linemarkers in preprocessor output
+
+When PIDL calls out to C preprocessor to expand IDL files
+and parse the output, it filters out linemarkers and line control
+information as described in http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
+and http://gcc.gnu.org/onlinedocs/cpp/Line-Control.html#Line-Control
+
+With gcc 4.8 stdc-predef.h is included automatically and linemarker for the
+file has extended flags that PIDL couldn't parse ('system header that needs to
+be extern "C" protected for C++')
+
+Thanks to Jakub Jelinek <jakub@redhat.com> for explanation of the linemarker format.
+
+Fixes https://bugzilla.redhat.com/show_bug.cgi?id=906517
+
+Reviewed-by: Andreas Schneider <asn@samba.org>
+(cherry picked from commit 6ba7ab5c14801aecae96373d5a9db7ab82957526)
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ pidl/idl.yp | 4 +++-
+ pidl/lib/Parse/Pidl/IDL.pm | 4 +++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/pidl/idl.yp b/pidl/idl.yp
+index b5c5185..c8a65f6 100644
+--- a/pidl/idl.yp
++++ b/pidl/idl.yp
+@@ -610,7 +610,9 @@ again:
+
+ for ($parser->YYData->{INPUT}) {
+ if (/^\#/) {
+- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
++ # Linemarker format is described at
++ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
++ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
+ $parser->YYData->{LINE} = $1-1;
+ $parser->YYData->{FILE} = $2;
+ goto again;
+diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm
+index d4820ff..6927c89 100644
+--- a/pidl/lib/Parse/Pidl/IDL.pm
++++ b/pidl/lib/Parse/Pidl/IDL.pm
+@@ -2576,7 +2576,9 @@ again:
+
+ for ($parser->YYData->{INPUT}) {
+ if (/^\#/) {
+- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
++ # Linemarker format is described at
++ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
++ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
+ $parser->YYData->{LINE} = $1-1;
+ $parser->YYData->{FILE} = $2;
+ goto again;
+--
+1.8.1.1
+