diff --git a/_service b/_service
index 2b84b4d..a9cd35e 100644
--- a/_service
+++ b/_service
@@ -3,8 +3,8 @@
git
https://github.com/KhronosGroup/SPIRV-Tools
spirv-tools
- spirv-1.1-rev1
- 1.1.g@TAG_OFFSET@
+ 68c5f0436f1d4f1f137e608780190865d0b193ca
+ 2016.7~g@TAG_OFFSET@
*.tar
diff --git a/gcc48.diff b/gcc48.diff
new file mode 100644
index 0000000..120778c
--- /dev/null
+++ b/gcc48.diff
@@ -0,0 +1,30 @@
+From: Jan Engelhardt
+Date: 2017-02-02 19:42:44.679588946 +0100
+
+build: workaround gcc 4.8 bug
+
+tools/io.h:41:38:
+error: ignoring return value of 'long int ftell(FILE*)',
+declared with attribute warn_unused_result [-Werror=unused-result,-Werror]
+ if (sizeof(T) != 1 && (ftell(fp) % sizeof(T))) {
+
+Workaround gcc 4.8's wrongful idea that ftell's return value
+were ignored.
+---
+ tools/io.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: spirv-tools-2016.7~g24/tools/io.h
+===================================================================
+--- spirv-tools-2016.7~g24.orig/tools/io.h
++++ spirv-tools-2016.7~g24/tools/io.h
+@@ -38,7 +38,8 @@ bool ReadFile(const char* filename, cons
+ return false;
+ }
+ } else {
+- if (sizeof(T) != 1 && (ftell(fp) % sizeof(T))) {
++ long ftx = ftell(fp);
++ if (sizeof(T) != 1 && ftx % sizeof(T) != 0) {
+ fprintf(stderr, "error: corrupted word found in file '%s'\n", filename);
+ return false;
+ }
diff --git a/spirv-tools-1.1.g41.tar.xz b/spirv-tools-1.1.g41.tar.xz
deleted file mode 100644
index 011719c..0000000
--- a/spirv-tools-1.1.g41.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ea51c69e9d730d4a6df8e472270bc14d0a717250524550df9cb0484f1d7c1de3
-size 159116
diff --git a/spirv-tools-2016.7~g24.tar.xz b/spirv-tools-2016.7~g24.tar.xz
new file mode 100644
index 0000000..eb8fbc0
--- /dev/null
+++ b/spirv-tools-2016.7~g24.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1dba9a634b911fd2d1773f7cd5e02311bcb20725f7302a953e108771e009cf12
+size 288652
diff --git a/spirv-tools.changes b/spirv-tools.changes
index e9aa863..3edce6d 100644
--- a/spirv-tools.changes
+++ b/spirv-tools.changes
@@ -1,3 +1,18 @@
+-------------------------------------------------------------------
+Thu Feb 2 10:35:57 UTC 2017 - jengelh@inai.de
+
+- Update to new snapshot 2016.7~g24
+ * Add classes for representing SPIR-V language constructs in memory.
+ * Add an option to spvBinaryToText() to ignore header output.
+ * Add IrBuilder for constructing SPIR-V in-memory representation.
+ * Add Pass, PassManager, and StripDebugInfoPass.
+ * Add the spirv-opt command line tool.
+ * Fixes segfault for loops without back-edges
+ * Allow missing memory model instructions in modules.
+ * Add spirv-lesspipe.sh
+ * Add spirv-dis/spirv-as support for emacs when loading .spv binaries
+- Add gcc48.diff
+
-------------------------------------------------------------------
Mon Jun 13 09:46:37 UTC 2016 - jengelh@inai.de
diff --git a/spirv-tools.spec b/spirv-tools.spec
index f4b5ca0..7bad373 100644
--- a/spirv-tools.spec
+++ b/spirv-tools.spec
@@ -1,7 +1,7 @@
#
# spec file for package spirv-tools
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,23 +16,26 @@
#
-%define version_unconverted 1.1.g41
-%define lname libSPIRV-Tools-1_1
+%define version_unconverted 2016.7~g24
+%define lname libSPIRV-Tools-suse2
Name: spirv-tools
-Version: 1.1.g41
+Version: 2016.7~g24
Release: 0
Summary: API and commands for processing SPIR-V modules
-License: MIT
+License: Apache-2.0
Group: Development/Libraries/C and C++
Url: https://github.com/KhronosGroup/SPIRV-Tools
Source: %name-%version.tar.xz
Patch1: ver.diff
+Patch2: gcc48.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: bison
BuildRequires: cmake >= 2.8.12
BuildRequires: gcc-c++
+BuildRequires: python
+BuildRequires: python-xml
BuildRequires: python3
BuildRequires: spirv-headers
@@ -63,7 +66,7 @@ integration into other code bases directly.
%prep
%setup -q
-%patch -P 1 -p1
+%patch -P 1 -P 2 -p1
%build
%cmake -D"SPIRV-Headers_SOURCE_DIR=%_prefix"
@@ -82,13 +85,19 @@ fi
%postun -n %lname -p /sbin/ldconfig
%files
+%defattr(-,root,root)
%_bindir/spirv-*
%doc LICENSE
%files -n %lname
-%_libdir/libSPIRV-Tools-1.1.so
+%defattr(-,root,root)
+%_libdir/libSPIRV-Tools.so.*
+%_libdir/libSPIRV-Tools-opt.so.*
%files devel
+%defattr(-,root,root)
+%_libdir/libSPIRV-Tools.so
+%_libdir/libSPIRV-Tools-opt.so
%_includedir/spirv-tools/
%changelog
diff --git a/ver.diff b/ver.diff
index 11e8241..ca63756 100644
--- a/ver.diff
+++ b/ver.diff
@@ -4,19 +4,31 @@ Date: 2016-06-13 11:46:16.846841814 +0200
Unversioned libraries suck!
---
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ source/CMakeLists.txt | 1 +
+ source/opt/CMakeLists.txt | 1 +
+ 2 files changed, 2 insertions(+)
-Index: SPIRV-Tools/CMakeLists.txt
+Index: spirv-tools-2016.7~g24/source/CMakeLists.txt
===================================================================
---- SPIRV-Tools.orig/CMakeLists.txt
-+++ SPIRV-Tools/CMakeLists.txt
-@@ -27,7 +27,7 @@
- cmake_minimum_required(VERSION 2.8.12)
- project(spirv-tools)
- enable_testing()
--set(SPIRV_TOOLS "SPIRV-Tools")
-+set(SPIRV_TOOLS "SPIRV-Tools-1.1")
+--- spirv-tools-2016.7~g24.orig/source/CMakeLists.txt
++++ spirv-tools-2016.7~g24/source/CMakeLists.txt
+@@ -219,6 +219,7 @@ set_source_files_properties(
+ PROPERTIES OBJECT_DEPENDS "${SPIRV_TOOLS_BUILD_VERSION_INC}")
- set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+ add_library(${SPIRV_TOOLS} ${SPIRV_SOURCES})
++set_target_properties(${SPIRV_TOOLS} PROPERTIES SOVERSION suse2)
+ spvtools_default_compile_options(${SPIRV_TOOLS})
+ target_include_directories(${SPIRV_TOOLS}
+ PUBLIC ${spirv-tools_SOURCE_DIR}/include
+Index: spirv-tools-2016.7~g24/source/opt/CMakeLists.txt
+===================================================================
+--- spirv-tools-2016.7~g24.orig/source/opt/CMakeLists.txt
++++ spirv-tools-2016.7~g24/source/opt/CMakeLists.txt
+@@ -53,6 +53,7 @@ add_library(SPIRV-Tools-opt
+ unify_const_pass.cpp
+ )
++set_target_properties(SPIRV-Tools-opt PROPERTIES SOVERSION suse2)
+ spvtools_default_compile_options(SPIRV-Tools-opt)
+ target_include_directories(SPIRV-Tools-opt
+ PUBLIC ${spirv-tools_SOURCE_DIR}/include