diff -u gcc-7-7.2.0/debian/changelog gcc-7-7.2.0/debian/changelog
--- gcc-7-7.2.0/debian/changelog
+++ gcc-7-7.2.0/debian/changelog
@@ -1,3 +1,9 @@
+gcc-7 (7.2.0-8ubuntu3) artful; urgency=medium
+
+ * debian/patches/cuda-float128.diff: Mask __float128 from CUDA (LP: #1717257)
+
+ -- Adam Conrad <adconrad@ubuntu.com> Sat, 14 Oct 2017 14:35:40 -0600
+
gcc-7 (7.2.0-8ubuntu2) artful; urgency=medium
* Dont't apply the PR 67165 backport on armhf.
diff -u gcc-7-7.2.0/debian/rules.patch gcc-7-7.2.0/debian/rules.patch
--- gcc-7-7.2.0/debian/rules.patch
+++ gcc-7-7.2.0/debian/rules.patch
@@ -75,6 +75,7 @@
libgo-s390x-default-isa \
pr81829 \
pr77631 \
+ cuda-float128 \
ifeq (,$(filter $(DEB_TARGET_ARCH),armhf armel))
debian_patches += pr67165
only in patch2:
unchanged:
--- gcc-7-7.2.0.orig/debian/patches/cuda-float128.diff
+++ gcc-7-7.2.0/debian/patches/cuda-float128.diff
@@ -0,0 +1,24 @@
+# Mask __float128 types from CUDA compilers (LP: #1717257)
+
+--- a/src/libstdc++-v3/include/std/type_traits 2017-10-14 14:26:53.293407511 -0600
++++ b/src/libstdc++-v3/include/std/type_traits 2017-10-14 14:31:37.857848519 -0600
+@@ -345,7 +345,7 @@
+ struct __is_floating_point_helper<long double>
+ : public true_type { };
+
+-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
++#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__CUDACC__)
+ template<>
+ struct __is_floating_point_helper<__float128>
+ : public true_type { };
+--- a/src/libstdc++-v3/include/bits/std_abs.h 2017-01-01 05:07:43.905435000 -0700
++++ b/src/libstdc++-v3/include/bits/std_abs.h 2017-10-14 14:31:56.251812105 -0600
+@@ -96,7 +96,7 @@
+ abs(__GLIBCXX_TYPE_INT_N_3 __x) { return __x >= 0 ? __x : -__x; }
+ #endif
+
+-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
++#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__CUDACC__)
+ inline _GLIBCXX_CONSTEXPR
+ __float128
+ abs(__float128 __x)