fix-TFLite-build-on-linux-with-system-zlib.patch 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. From ae0f9adb7e14c0d19ca695ef6ad40b321a8cb64c Mon Sep 17 00:00:00 2001
  2. From: Andres Salomon <dilinger@queued.net>
  3. Date: Mon, 8 Aug 2022 23:01:53 +0000
  4. Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib
  5. The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite,
  6. which included the new zip_*_mem_file.* files that include minizip's
  7. ioapi.h. To support that, it also declared that tflite_support depends
  8. on minizip (in third_party/tflite_support/BUILD.gn). However, that's not
  9. enough, and results in a build error when building using the stub linux
  10. zlib build scripts.
  11. Other places that depend on minizip use a longer path to its header
  12. files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support
  13. depends on minizip, and
  14. chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc
  15. includes "third_party/zlib/contrib/minizip/ioapi.h".
  16. The new tensorflow stuff should do the same, instead of just including
  17. "contrib/minizip/ioapi.h". This patch fixes that, as well as other
  18. places where ioapi.h or zip.h/unzip.h are included without a fuller
  19. path.
  20. Note: if you prefer to not modify the tflite code, let me know and I
  21. can instead do a change that adds third_party/zlib as an include path
  22. for minizip.
  23. R=mcrouse@chromium.org, robertogden@chromium.org, sesse@chromium.org, thestig@chromium.org
  24. Bug: 1348787
  25. Change-Id: I922d18b3d1c0e459437624fd248c21afc1be6bb8
  26. Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3797828
  27. Commit-Queue: Andres Salomon <dilinger@queued.net>
  28. Auto-Submit: Andres Salomon <dilinger@queued.net>
  29. Reviewed-by: Michael Crouse <mcrouse@chromium.org>
  30. Cr-Commit-Position: refs/heads/main@{#1032774}
  31. ---
  32. third_party/tflite_support/README.chromium | 2 +
  33. ...-errors-on-linux-when-using-the-syst.patch | 129 ++++++++++++++++++
  34. .../metadata/cc/metadata_extractor.cc | 4 +-
  35. .../metadata/cc/metadata_populator.cc | 4 +-
  36. .../cc/utils/zip_readonly_mem_file.cc | 2 +-
  37. .../metadata/cc/utils/zip_readonly_mem_file.h | 2 +-
  38. .../cc/utils/zip_writable_mem_file.cc | 2 +-
  39. .../metadata/cc/utils/zip_writable_mem_file.h | 2 +-
  40. 8 files changed, 139 insertions(+), 8 deletions(-)
  41. create mode 100644 third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch
  42. diff --git a/third_party/tflite_support/README.chromium b/third_party/tflite_support/README.chromium
  43. index cfaf220adb..91f4baf82b 100644
  44. --- a/third_party/tflite_support/README.chromium
  45. +++ b/third_party/tflite_support/README.chromium
  46. @@ -36,6 +36,8 @@ is a no-op in chromium builds and upsets clang.
  47. * This patch intentionally does not apply because it was made with
  48. `--irreversible-delete` because it is deleting a large .tflite file causing
  49. the chromium-presubmit bot to fail.
  50. +10) Fix minizip path inclusion. Upstream uses contrib/minizip/, but chromium
  51. +uses third_party/zlib/contrib/minizip/.
  52. Update Process (internal: http://shortn/_nwz8liqimy):
  53. 1) Run these commands:
  54. diff --git a/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch
  55. new file mode 100644
  56. index 0000000000..34acf277fc
  57. --- /dev/null
  58. +++ b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch
  59. @@ -0,0 +1,129 @@
  60. +From 12da2fa8f2d779e2fc14f48de73af79e9040c141 Mon Sep 17 00:00:00 2001
  61. +From: Andres Salomon <dilinger@queued.net>
  62. +Date: Sun, 31 Jul 2022 19:07:24 -0400
  63. +Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib
  64. +
  65. +The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite,
  66. +which included the new zip_*_mem_file.* files that include minizip's
  67. +ioapi.h. To support that, it also declared that tflite_support depends
  68. +on minizip (in third_party/tflite_support/BUILD.gn). However, that's not
  69. +enough, and results in a build error when building using the stub linux
  70. +zlib build scripts.
  71. +
  72. +Other places that depend on minizip use a longer path to its header
  73. +files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support
  74. +depends on minizip, and
  75. +chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc
  76. +includes "third_party/zlib/contrib/minizip/ioapi.h".
  77. +
  78. +The new tensorflow stuff should do the same, instead of just including
  79. +"contrib/minizip/ioapi.h". This patch fixes that, as well as other
  80. +places where ioapi.h or zip.h/unzip.h are included without a fuller
  81. +path.
  82. +---
  83. + .../tensorflow_lite_support/metadata/cc/metadata_extractor.cc | 4 ++--
  84. + .../tensorflow_lite_support/metadata/cc/metadata_populator.cc | 4 ++--
  85. + .../metadata/cc/utils/zip_readonly_mem_file.cc | 2 +-
  86. + .../metadata/cc/utils/zip_readonly_mem_file.h | 2 +-
  87. + .../metadata/cc/utils/zip_writable_mem_file.cc | 2 +-
  88. + .../metadata/cc/utils/zip_writable_mem_file.h | 2 +-
  89. + 6 files changed, 8 insertions(+), 8 deletions(-)
  90. +
  91. +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
  92. +index 2a72338741626..62d0910182877 100644
  93. +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
  94. ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
  95. +@@ -21,14 +21,14 @@ limitations under the License.
  96. + #include "absl/status/status.h" // from @com_google_absl
  97. + #include "absl/strings/str_format.h" // from @com_google_absl
  98. + #include "absl/strings/string_view.h" // from @com_google_absl
  99. +-#include "contrib/minizip/ioapi.h"
  100. +-#include "contrib/minizip/unzip.h"
  101. + #include "flatbuffers/flatbuffers.h" // from @flatbuffers
  102. + #include "tensorflow/lite/schema/schema_generated.h"
  103. + #include "tensorflow_lite_support/cc/common.h"
  104. + #include "tensorflow_lite_support/cc/port/status_macros.h"
  105. + #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
  106. + #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
  107. ++#include "third_party/zlib/contrib/minizip/ioapi.h"
  108. ++#include "third_party/zlib/contrib/minizip/unzip.h"
  109. +
  110. + namespace tflite {
  111. + namespace metadata {
  112. +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
  113. +index 299ade3e95d54..8e13fa63dafbc 100644
  114. +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
  115. ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
  116. +@@ -19,8 +19,6 @@ limitations under the License.
  117. + #include <cstring>
  118. + #include <functional>
  119. +
  120. +-#include "contrib/minizip/ioapi.h"
  121. +-#include "contrib/minizip/zip.h"
  122. + #include "flatbuffers/flatbuffers.h" // from @flatbuffers
  123. + #include "tensorflow/lite/schema/schema_generated.h"
  124. + #include "tensorflow_lite_support/cc/common.h"
  125. +@@ -28,6 +26,8 @@ limitations under the License.
  126. + #include "tensorflow_lite_support/cc/port/statusor.h"
  127. + #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
  128. + #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
  129. ++#include "third_party/zlib/contrib/minizip/ioapi.h"
  130. ++#include "third_party/zlib/contrib/minizip/zip.h"
  131. +
  132. + namespace tflite {
  133. + namespace metadata {
  134. +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
  135. +index 392b6b411fe03..525ae4a2b45bd 100644
  136. +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
  137. ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
  138. +@@ -19,7 +19,7 @@ limitations under the License.
  139. + #include <cstdio>
  140. +
  141. + #include "absl/strings/string_view.h" // from @com_google_absl
  142. +-#include "contrib/minizip/ioapi.h"
  143. ++#include "third_party/zlib/contrib/minizip/ioapi.h"
  144. +
  145. + namespace tflite {
  146. + namespace metadata {
  147. +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
  148. +index a1799ff509de5..72413a0a56252 100644
  149. +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
  150. ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
  151. +@@ -19,7 +19,7 @@ limitations under the License.
  152. + #include <cstdlib>
  153. +
  154. + #include "absl/strings/string_view.h" // from @com_google_absl
  155. +-#include "contrib/minizip/ioapi.h"
  156. ++#include "third_party/zlib/contrib/minizip/ioapi.h"
  157. +
  158. + namespace tflite {
  159. + namespace metadata {
  160. +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
  161. +index 38ad17ad8935c..3ba91b5e22890 100644
  162. +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
  163. ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
  164. +@@ -19,7 +19,7 @@ limitations under the License.
  165. + #include <cstdio>
  166. +
  167. + #include "absl/strings/string_view.h" // from @com_google_absl
  168. +-#include "contrib/minizip/ioapi.h"
  169. ++#include "third_party/zlib/contrib/minizip/ioapi.h"
  170. +
  171. + namespace tflite {
  172. + namespace metadata {
  173. +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
  174. +index 30e42fdb72a31..3d329925df756 100644
  175. +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
  176. ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
  177. +@@ -19,7 +19,7 @@ limitations under the License.
  178. + #include <cstdlib>
  179. +
  180. + #include "absl/strings/string_view.h" // from @com_google_absl
  181. +-#include "contrib/minizip/ioapi.h"
  182. ++#include "third_party/zlib/contrib/minizip/ioapi.h"
  183. +
  184. + namespace tflite {
  185. + namespace metadata {
  186. +--
  187. +2.30.2
  188. +
  189. diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
  190. index 2a72338741..62d0910182 100644
  191. --- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
  192. +++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
  193. @@ -21,14 +21,14 @@ limitations under the License.
  194. #include "absl/status/status.h" // from @com_google_absl
  195. #include "absl/strings/str_format.h" // from @com_google_absl
  196. #include "absl/strings/string_view.h" // from @com_google_absl
  197. -#include "contrib/minizip/ioapi.h"
  198. -#include "contrib/minizip/unzip.h"
  199. #include "flatbuffers/flatbuffers.h" // from @flatbuffers
  200. #include "tensorflow/lite/schema/schema_generated.h"
  201. #include "tensorflow_lite_support/cc/common.h"
  202. #include "tensorflow_lite_support/cc/port/status_macros.h"
  203. #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
  204. #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
  205. +#include "third_party/zlib/contrib/minizip/ioapi.h"
  206. +#include "third_party/zlib/contrib/minizip/unzip.h"
  207. namespace tflite {
  208. namespace metadata {
  209. diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
  210. index 299ade3e95..8e13fa63da 100644
  211. --- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
  212. +++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
  213. @@ -19,8 +19,6 @@ limitations under the License.
  214. #include <cstring>
  215. #include <functional>
  216. -#include "contrib/minizip/ioapi.h"
  217. -#include "contrib/minizip/zip.h"
  218. #include "flatbuffers/flatbuffers.h" // from @flatbuffers
  219. #include "tensorflow/lite/schema/schema_generated.h"
  220. #include "tensorflow_lite_support/cc/common.h"
  221. @@ -28,6 +26,8 @@ limitations under the License.
  222. #include "tensorflow_lite_support/cc/port/statusor.h"
  223. #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
  224. #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
  225. +#include "third_party/zlib/contrib/minizip/ioapi.h"
  226. +#include "third_party/zlib/contrib/minizip/zip.h"
  227. namespace tflite {
  228. namespace metadata {
  229. diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
  230. index 392b6b411f..525ae4a2b4 100644
  231. --- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
  232. +++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
  233. @@ -19,7 +19,7 @@ limitations under the License.
  234. #include <cstdio>
  235. #include "absl/strings/string_view.h" // from @com_google_absl
  236. -#include "contrib/minizip/ioapi.h"
  237. +#include "third_party/zlib/contrib/minizip/ioapi.h"
  238. namespace tflite {
  239. namespace metadata {
  240. diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
  241. index a1799ff509..72413a0a56 100644
  242. --- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
  243. +++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
  244. @@ -19,7 +19,7 @@ limitations under the License.
  245. #include <cstdlib>
  246. #include "absl/strings/string_view.h" // from @com_google_absl
  247. -#include "contrib/minizip/ioapi.h"
  248. +#include "third_party/zlib/contrib/minizip/ioapi.h"
  249. namespace tflite {
  250. namespace metadata {
  251. diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
  252. index 38ad17ad89..3ba91b5e22 100644
  253. --- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
  254. +++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
  255. @@ -19,7 +19,7 @@ limitations under the License.
  256. #include <cstdio>
  257. #include "absl/strings/string_view.h" // from @com_google_absl
  258. -#include "contrib/minizip/ioapi.h"
  259. +#include "third_party/zlib/contrib/minizip/ioapi.h"
  260. namespace tflite {
  261. namespace metadata {
  262. diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
  263. index 30e42fdb72..3d329925df 100644
  264. --- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
  265. +++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
  266. @@ -19,7 +19,7 @@ limitations under the License.
  267. #include <cstdlib>
  268. #include "absl/strings/string_view.h" // from @com_google_absl
  269. -#include "contrib/minizip/ioapi.h"
  270. +#include "third_party/zlib/contrib/minizip/ioapi.h"
  271. namespace tflite {
  272. namespace metadata {