Skip to content

Commit b429e4b

Browse files
mkittid-v-b
andauthored
Update c-blosc (v1) to 1.21.5 (#500)
* Update c-blosc (v1) to 1.21.5 Compile .S assembly files via setup.py Fix Python 3.8 by not including minizip/crypt.h * Add to release notes [skip ci] * Update docs/release.rst --------- Co-authored-by: Davis Bennett <[email protected]>
1 parent 44aae6a commit b429e4b

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed

c-blosc

Submodule c-blosc updated 432 files

docs/release.rst

+6
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,15 @@ Fix
2222

2323
* Fix skip of entry points backport tests
2424
By :user:`Elliott Sales de Andrade <QuLogic>`, :issue:`487`.
25+
* Fix Upgrade to Zstd 1.5.5 due to potential corruption.
26+
By :user:`Mark Kittisopikul <mkitti>`, :issue:`429`
2527

2628
Maintenance
2729
~~~~~~~~~~~
30+
* Update c-blosc to 1.21.0 to 1.21.5, zstd from 1.4.8 to 1.5.5,
31+
lz4 from 1.9.3 to 1.9.4, and zlib from 1.2.8 to to 1.2.13
32+
By :user:`Mark Kittisopikul <mkitti>`, :issue:`500`
33+
2834

2935
.. _release_0.12.1:
3036

setup.py

+43-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
from Cython.Distutils.build_ext import new_build_ext as build_ext
77
from setuptools import Extension, setup
88
from setuptools.errors import CCompilerError, ExecError, PlatformError
9+
from distutils import ccompiler
10+
from distutils.command.clean import clean
911

1012
# determine CPU support for SSE2 and AVX2
1113
cpu_info = cpuinfo.get_cpu_info()
@@ -71,6 +73,8 @@ def blosc_extension():
7173
if os.path.isdir(d)]
7274
include_dirs += [d for d in glob('c-blosc/internal-complibs/*/*/*')
7375
if os.path.isdir(d)]
76+
# remove minizip because Python.h 3.8 tries to include crypt.h
77+
include_dirs = [d for d in include_dirs if 'minizip' not in d]
7478
define_macros += [('HAVE_LZ4', 1),
7579
# ('HAVE_SNAPPY', 1),
7680
('HAVE_ZLIB', 1),
@@ -97,6 +101,15 @@ def blosc_extension():
97101
else:
98102
info('compiling Blosc extension without AVX2 support')
99103

104+
# include assembly files
105+
if cpuinfo.platform.machine() == 'x86_64':
106+
extra_objects = [
107+
S[:-1] + 'o'
108+
for S in glob("c-blosc/internal-complibs/zstd*/decompress/*amd64.S")
109+
]
110+
else:
111+
extra_objects = []
112+
100113
sources = ['numcodecs/blosc.pyx']
101114

102115
# define extension module
@@ -106,6 +119,7 @@ def blosc_extension():
106119
include_dirs=include_dirs,
107120
define_macros=define_macros,
108121
extra_compile_args=extra_compile_args,
122+
extra_objects=extra_objects,
109123
),
110124
]
111125

@@ -133,13 +147,23 @@ def zstd_extension():
133147

134148
sources = ['numcodecs/zstd.pyx']
135149

150+
# include assembly files
151+
if cpuinfo.platform.machine() == 'x86_64':
152+
extra_objects = [
153+
S[:-1] + 'o'
154+
for S in glob("c-blosc/internal-complibs/zstd*/decompress/*amd64.S")
155+
]
156+
else:
157+
extra_objects = []
158+
136159
# define extension module
137160
extensions = [
138161
Extension('numcodecs.zstd',
139162
sources=sources + zstd_sources,
140163
include_dirs=include_dirs,
141164
define_macros=define_macros,
142165
extra_compile_args=extra_compile_args,
166+
extra_objects=extra_objects,
143167
),
144168
]
145169

@@ -298,6 +322,12 @@ class ve_build_ext(build_ext):
298322

299323
def run(self):
300324
try:
325+
if cpuinfo.platform.machine() == 'x86_64':
326+
S_files = glob('c-blosc/internal-complibs/zstd*/decompress/*amd64.S')
327+
compiler = ccompiler.new_compiler()
328+
compiler.src_extensions.append('.S')
329+
compiler.compile(S_files)
330+
301331
build_ext.run(self)
302332
except PlatformError as e:
303333
error(e)
@@ -311,14 +341,26 @@ def build_extension(self, ext):
311341
raise BuildFailed()
312342

313343

344+
class Sclean(clean):
345+
# Clean up .o files created by .S files
346+
347+
def run(self):
348+
if cpuinfo.platform.machine() == 'x86_64':
349+
o_files = glob('c-blosc/internal-complibs/zstd*/decompress/*amd64.o')
350+
for f in o_files:
351+
os.remove(f)
352+
353+
clean.run(self)
354+
355+
314356
def run_setup(with_extensions):
315357

316358
if with_extensions:
317359
ext_modules = (blosc_extension() + zstd_extension() + lz4_extension() +
318360
compat_extension() + shuffle_extension() + vlen_extension() +
319361
fletcher_extension() + jenkins_extension())
320362

321-
cmdclass = dict(build_ext=ve_build_ext)
363+
cmdclass = dict(build_ext=ve_build_ext, clean=Sclean)
322364
else:
323365
ext_modules = []
324366
cmdclass = {}

0 commit comments

Comments
 (0)