Skip to content

Commit 4fae902

Browse files
committed
attempt to fix linux x86 build
1 parent 2e884bd commit 4fae902

File tree

2 files changed

+272
-0
lines changed

2 files changed

+272
-0
lines changed

.github/workflows/build-linux-x86.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ jobs:
1616
- uses: actions/checkout@v4
1717
with:
1818
persist-credentials: false
19+
- name: Fix zlib build
20+
run: |
21+
rm ./deps/zlib/zlib.gyp
22+
mv ./deps/zlib/x86_zlib.gyp ./deps/zlib/zlib.gyp
1923
- name: Build
2024
run: |
2125
chmod -R 777 ./

deps/zlib/x86_zlib.gyp

Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
# Copyright (c) 2009 The Chromium Authors. All rights reserved.
2+
# Use of this source code is governed by a BSD-style license that can be
3+
# found in the LICENSE file.
4+
5+
{
6+
'variables': {
7+
'ZLIB_ROOT': '.',
8+
'use_system_zlib%': 0,
9+
'arm_fpu%': '',
10+
'llvm_version%': '0.0',
11+
},
12+
'conditions': [
13+
['use_system_zlib==1', {
14+
'targets': [
15+
{
16+
'target_name': 'zlib_adler32_simd',
17+
'type': 'static_library',
18+
'conditions': [
19+
['target_arch in "ia32 x64" and OS!="ios"', {
20+
'defines': [ 'ADLER32_SIMD_SSSE3' ],
21+
'conditions': [
22+
['OS=="win"', {
23+
'defines': [ 'X86_WINDOWS' ],
24+
},{
25+
'defines': [ 'X86_NOT_WINDOWS' ],
26+
}],
27+
['OS!="win" or llvm_version!="0.0"', {
28+
'cflags': [ '-mssse3' ],
29+
'xcode_settings': {
30+
'OTHER_CFLAGS': [ '-mssse3' ],
31+
},
32+
}],
33+
],
34+
}],
35+
['arm_fpu=="neon"', {
36+
'defines': [ 'ADLER32_SIMD_NEON' ],
37+
}],
38+
],
39+
'include_dirs': [ '<(ZLIB_ROOT)' ],
40+
'direct_dependent_settings': {
41+
'conditions': [
42+
['target_arch in "ia32 x64" and OS!="ios"', {
43+
'defines': [ 'ADLER32_SIMD_SSSE3' ],
44+
'conditions': [
45+
['OS=="win"', {
46+
'defines': [ 'X86_WINDOWS' ],
47+
},{
48+
'defines': [ 'X86_NOT_WINDOWS' ],
49+
}],
50+
],
51+
}],
52+
['arm_fpu=="neon"', {
53+
'defines': [ 'ADLER32_SIMD_NEON' ],
54+
}],
55+
],
56+
'include_dirs': [ '<(ZLIB_ROOT)' ],
57+
},
58+
'sources': [
59+
'<!@pymod_do_main(GN-scraper "<(ZLIB_ROOT)/BUILD.gn" "\\"zlib_adler32_simd\\".*?sources = ")',
60+
],
61+
}, # zlib_adler32_simd
62+
{
63+
'target_name': 'zlib_arm_crc32',
64+
'type': 'static_library',
65+
'conditions': [
66+
['OS!="ios"', {
67+
'conditions': [
68+
['OS!="win" and llvm_version=="0.0"', {
69+
'cflags': [ '-march=armv8-a+aes+crc' ],
70+
}],
71+
['OS=="android"', {
72+
'defines': [ 'ARMV8_OS_ANDROID' ],
73+
}],
74+
['OS=="linux"', {
75+
'defines': [ 'ARMV8_OS_LINUX' ],
76+
}],
77+
['OS=="mac"', {
78+
'defines': [ 'ARMV8_OS_MACOS' ],
79+
}],
80+
['OS=="win"', {
81+
'defines': [ 'ARMV8_OS_WINDOWS' ],
82+
}],
83+
],
84+
'defines': [ 'CRC32_ARMV8_CRC32' ],
85+
'include_dirs': [ '<(ZLIB_ROOT)' ],
86+
'direct_dependent_settings': {
87+
'defines': [ 'CRC32_ARMV8_CRC32' ],
88+
'conditions': [
89+
['OS=="android"', {
90+
'defines': [ 'ARMV8_OS_ANDROID' ],
91+
}],
92+
['OS=="linux"', {
93+
'defines': [ 'ARMV8_OS_LINUX' ],
94+
}],
95+
['OS=="mac"', {
96+
'defines': [ 'ARMV8_OS_MACOS' ],
97+
}],
98+
['OS=="win"', {
99+
'defines': [ 'ARMV8_OS_WINDOWS' ],
100+
}],
101+
],
102+
'include_dirs': [ '<(ZLIB_ROOT)' ],
103+
},
104+
'sources': [
105+
'<!@pymod_do_main(GN-scraper "<(ZLIB_ROOT)/BUILD.gn" "\\"zlib_arm_crc32\\".*?sources = ")',
106+
],
107+
}],
108+
],
109+
}, # zlib_arm_crc32
110+
{
111+
'target_name': 'zlib_crc32_simd',
112+
'type': 'static_library',
113+
'conditions': [
114+
['OS!="win" or llvm_version!="0.0"', {
115+
'cflags': [
116+
'-msse4.2',
117+
'-mpclmul',
118+
],
119+
'xcode_settings': {
120+
'OTHER_CFLAGS': [
121+
'-msse4.2',
122+
'-mpclmul',
123+
],
124+
},
125+
}]
126+
],
127+
'defines': [ 'CRC32_SIMD_SSE42_PCLMUL' ],
128+
'include_dirs': [ '<(ZLIB_ROOT)' ],
129+
'direct_dependent_settings': {
130+
'defines': [ 'CRC32_SIMD_SSE42_PCLMUL' ],
131+
'include_dirs': [ '<(ZLIB_ROOT)' ],
132+
},
133+
'sources': [
134+
'<!@pymod_do_main(GN-scraper "<(ZLIB_ROOT)/BUILD.gn" "\\"zlib_crc32_simd\\".*?sources = ")',
135+
],
136+
}, # zlib_crc32_simd
137+
{
138+
'target_name': 'zlib_inflate_chunk_simd',
139+
'type': 'static_library',
140+
'conditions': [
141+
['target_arch in "ia32 x64" and OS!="ios"', {
142+
'defines': [ 'INFLATE_CHUNK_SIMD_SSE2' ],
143+
'conditions': [
144+
['target_arch=="x64"', {
145+
'defines': [ 'INFLATE_CHUNK_READ_64LE' ],
146+
}],
147+
],
148+
}],
149+
['arm_fpu=="neon"', {
150+
'defines': [ 'INFLATE_CHUNK_SIMD_NEON' ],
151+
'conditions': [
152+
['target_arch=="arm64"', {
153+
'defines': [ 'INFLATE_CHUNK_READ_64LE' ],
154+
}],
155+
],
156+
}],
157+
],
158+
'include_dirs': [ '<(ZLIB_ROOT)' ],
159+
'direct_dependent_settings': {
160+
'conditions': [
161+
['target_arch in "ia32 x64" and OS!="ios"', {
162+
'defines': [ 'INFLATE_CHUNK_SIMD_SSE2' ],
163+
}],
164+
['arm_fpu=="neon"', {
165+
'defines': [ 'INFLATE_CHUNK_SIMD_NEON' ],
166+
}],
167+
],
168+
'include_dirs': [ '<(ZLIB_ROOT)' ],
169+
},
170+
'sources': [
171+
'<!@pymod_do_main(GN-scraper "<(ZLIB_ROOT)/BUILD.gn" "\\"zlib_inflate_chunk_simd\\".*?sources = ")',
172+
],
173+
}, # zlib_inflate_chunk_simd
174+
{
175+
'target_name': 'zlib',
176+
'type': 'static_library',
177+
'sources': [
178+
'<!@pymod_do_main(GN-scraper "<(ZLIB_ROOT)/BUILD.gn" "\\"zlib\\".*?sources = ")',
179+
],
180+
'include_dirs': [ '<(ZLIB_ROOT)' ],
181+
'direct_dependent_settings': {
182+
'include_dirs': [ '<(ZLIB_ROOT)' ],
183+
},
184+
'conditions': [
185+
['OS!="win"', {
186+
'cflags!': [ '-ansi' ],
187+
'cflags': [ '-Wno-implicit-fallthrough' ],
188+
'defines': [ 'HAVE_HIDDEN' ],
189+
}, {
190+
'defines': [ 'ZLIB_DLL' ]
191+
}],
192+
['OS=="mac" or OS=="ios" or OS=="freebsd" or OS=="android"', {
193+
# Mac, Android and the BSDs don't have fopen64, ftello64, or
194+
# fseeko64. We use fopen, ftell, and fseek instead on these
195+
# systems.
196+
'defines': [
197+
'USE_FILE32API'
198+
],
199+
}],
200+
# Incorporate optimizations where possible.
201+
['(target_arch in "ia32 x64" and OS!="ios") or arm_fpu=="neon"', {
202+
'dependencies': [ 'zlib_inflate_chunk_simd' ],
203+
'sources': [ '<(ZLIB_ROOT)/slide_hash_simd.h' ]
204+
}, {
205+
'defines': [ 'CPU_NO_SIMD' ],
206+
'sources': [ '<(ZLIB_ROOT)/inflate.c' ],
207+
}],
208+
['target_arch in "ia32 x64" and OS!="ios"', {
209+
'dependencies': [
210+
'zlib_adler32_simd',
211+
'zlib_crc32_simd',
212+
],
213+
'defines': [ 'DEFLATE_SLIDE_HASH_SSE2' ],
214+
'conditions': [
215+
['target_arch=="x64"', {
216+
'defines': [ 'INFLATE_CHUNK_READ_64LE' ],
217+
}],
218+
],
219+
}],
220+
['arm_fpu=="neon"', {
221+
'defines': [
222+
'__ARM_NEON__',
223+
'DEFLATE_SLIDE_HASH_NEON',
224+
],
225+
'conditions': [
226+
['OS=="win"', {
227+
'defines': [ 'ARMV8_OS_WINDOWS' ],
228+
}, {
229+
'conditions': [
230+
['OS!="ios"', {
231+
'dependencies': [
232+
'zlib_adler32_simd',
233+
'zlib_arm_crc32',
234+
],
235+
}],
236+
],
237+
}],
238+
['target_arch=="arm64"', {
239+
'defines': [ 'INFLATE_CHUNK_READ_64LE' ],
240+
}],
241+
],
242+
}],
243+
],
244+
},
245+
],
246+
}, {
247+
'targets': [
248+
{
249+
'target_name': 'zlib',
250+
'type': 'static_library',
251+
'direct_dependent_settings': {
252+
'defines': [
253+
'USE_SYSTEM_ZLIB',
254+
],
255+
},
256+
'defines': [
257+
'USE_SYSTEM_ZLIB',
258+
],
259+
'link_settings': {
260+
'libraries': [
261+
'-lz',
262+
],
263+
},
264+
},
265+
],
266+
}],
267+
],
268+
}

0 commit comments

Comments
 (0)