Numpy: GCC 10.1๋กœ numpy ์ปดํŒŒ์ผ ๋ฌธ์ œ

์— ๋งŒ๋“  2020๋…„ 05์›” 28์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: numpy/numpy

๋กœ์ปฌ์—์„œ numpy๋ฅผ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

gcc: numpy/core/src/common/mem_overlap.c
gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so
/usr/bin/ld: build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1824: multiple definition of `PyArrayDTypeMeta_Type'; build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o:/home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h:1824: first defined here
collect2: error: ld returned 1 exit status
error: Command "gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interposition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-x86_64-3.8/numpy/core/src/multiarray/_multiarray_tests.o build/temp.linux-x86_64-3.8/numpy/core/src/common/mem_overlap.o -L/usr/lib -Lbuild/temp.linux-x86_64-3.8 -lnpymath -o numpy/core/_multiarray_tests.cpython-38-x86_64-linux-gnu.so" failed with exit status 1
`bisect`ing์€ 1809a0fde๋ฅผ ๋ฌธ์ œ์˜ ์›์ธ์œผ๋กœ ์‹๋ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” gcc 10.1์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. gcc 9.3์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ### ์žฌํ˜„ ์ฝ”๋“œ ์˜ˆ์ œ :
$ git clone https://github.com/numpy/numpy.git
$ git checkout 1809a0fde
$ pip install -r test_requirements.txt
$ python setup.py build_ext -i
### ์—๋Ÿฌ ๋ฉ”์‹œ์ง€:
์ „์ฒด ๋นŒ๋“œ ๋กœ๊ทธ
 numpy ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. 
 ์„ธํฌ ํ™” ์†Œ์Šค 
 numpy / random / _bounded_integers.pxd.in์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 
 numpy / random / mtrand.pyx ์ฒ˜๋ฆฌ 
 numpy / random / _common.pyx๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 
 numpy / random / _mt19937.pyx ์ฒ˜๋ฆฌ 
 numpy / random / _pcg64.pyx ์ฒ˜๋ฆฌ 
 numpy / random / _generator.pyx ์ฒ˜๋ฆฌ 
 numpy / random / _bounded_integers.pyx๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 
 numpy / random / _sfc64.pyx๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 
 numpy / random / _philox.pyx๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 
 numpy / random / bit_generator.pyx๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 
 numpy / random / _bounded_integers.pyx.in์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 
 numpy / core / setup.py : 406 : MismatchCAPIWarning : API ๋ถˆ์ผ์น˜๊ฐ€ ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. C API ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ C api ๋ฒ„์ „์€ 13์ด๊ณ  ์ฒดํฌ์„ฌ์€ 17a0f366e55ec05e5c5c149123478452์ด์ง€๋งŒ core / codegen_dir / cversions.txt์˜ C API ๋ฒ„์ „ 13์— ๋Œ€ํ•ด ๊ธฐ๋ก ๋œ ์ฒดํฌ์„ฌ์€ 5b0e8bbded00b166125974fc71e80a33์ž…๋‹ˆ๋‹ค. C API์— ํ•จ์ˆ˜๊ฐ€ ์ถ”๊ฐ€ ๋œ ๊ฒฝ์šฐ numpy / core / setup_common.py์—์„œ C_API_VERSION์„ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. 
 check_api_version (C_API_VERSION, codegen_dir) 
 blas_opt_info :
 blas_mkl_info :
 UnixCCompiler ์‚ฌ์šฉ์ž ์ •์˜
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ mkl_rt๊ฐ€ [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ]
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 blis_info :
 [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ blis๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ]
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 openblas_info :
 C ์ปดํŒŒ์ผ๋Ÿฌ : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march = x86-64 -mtune = generic -O3 -pipe -fno-plt -fno-semantic-interposition -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -fPIC

 / tmp / tmpp_pb97eg / tmp ์ƒ์„ฑ
 / tmp / tmpp_pb97eg / tmp / tmpp_pb97eg ์ƒ์„ฑ
 ์ปดํŒŒ์ผ ์˜ต์…˜ : '-c'
 gcc : /tmp/tmpp_pb97eg/source.c
 gcc -pthread /tmp/tmpp_pb97eg/tmp/tmpp_pb97eg/source.o -L / usr / lib64 -lopenblas -o /tmp/tmpp_pb97eg/a.out
 ๋…น์ด๋‹ค:
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ = [ 'openblas', 'openblas']
 library_dirs = [ '/ usr / lib64']
 ์–ธ์–ด = c
 define_macros = [( 'HAVE_CBLAS', ์—†์Œ)]

 ๋…น์ด๋‹ค:
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ = [ 'openblas', 'openblas']
 library_dirs = [ '/ usr / lib64']
 ์–ธ์–ด = c
 define_macros = [( 'HAVE_CBLAS', ์—†์Œ)]

 'numpy / distutils'์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ๋กœ : 'site.cfg'
 lapack_opt_info :
 lapack_mkl_info :
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ mkl_rt๋ฅผ [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ]
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 openblas_lapack_info :
 C ์ปดํŒŒ์ผ๋Ÿฌ : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march = x86-64 -mtune = generic -O3 -pipe -fno-plt -fno-semantic-interposition -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -fPIC

 / tmp / tmpeicqr4ho / tmp ์ƒ์„ฑ
 / tmp / tmpeicqr4ho / tmp / tmpeicqr4ho ์ƒ์„ฑ
 ์ปดํŒŒ์ผ ์˜ต์…˜ : '-c'
 gcc : /tmp/tmpeicqr4ho/source.c
 gcc -pthread /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho/source.o -L / usr / lib64 -lopenblas -o /tmp/tmpeicqr4ho/a.out
 / usr / bin / ld : /tmp/tmpeicqr4ho/tmp/tmpeicqr4ho/source.o : 'main'ํ•จ์ˆ˜์—์„œ :
 /tmp/tmpeicqr4ho/source.c:4 :`zungqr_ '์— ๋Œ€ํ•œ ์ •์˜๋˜์ง€ ์•Š์€ ์ฐธ์กฐ
 collect2 : ์˜ค๋ฅ˜ : ld๊ฐ€ 1 ์ข…๋ฃŒ ์ƒํƒœ๋ฅผ ๋ฆฌํ„ดํ–ˆ์Šต๋‹ˆ๋‹ค.
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 openblas_clapack_info :
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ openblas, lapack์ด [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. / ']
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 flame_info :
 [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๊ฝƒ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ]
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 atlas_3_10_threads_info :
 PTATLAS = ATLAS ์„ค์ •
 /home/ross/.virtualenvs/tmp/lib์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ tatlas, tatlas๋Š” /home/ross/.virtualenvs/tmp/lib์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 / usr / local / lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ tatlas, tatlas๋Š” / usr / local / lib์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib64์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ tatlas, tatlas๋Š” / usr / lib64์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ tatlas, tatlas๋Š” / usr / lib์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib /์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ tatlas, tatlas๊ฐ€ / usr / lib /์— ์—†์Šต๋‹ˆ๋‹ค.

 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 atlas_3_10_info :
 /home/ross/.virtualenvs/tmp/lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ satlas, satlas๋ฅผ /home/ross/.virtualenvs/tmp/lib์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 / usr / local / lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ satlas, satlas๋ฅผ / usr / local / lib์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Œ
 / usr / lib64์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ satlas, satlas๋ฅผ / usr / lib64์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Œ
 / usr / lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ satlas, satlas๋ฅผ / usr / lib์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Œ
 / usr / lib /์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ satlas, satlas๋ฅผ / usr / lib /์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Œ

 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 atlas_threads_info :
 PTATLAS = ATLAS ์„ค์ •
 /home/ross/.virtualenvs/tmp/lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ€ /home/ross/.virtualenvs/tmp/lib์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / local / lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ€ / usr / local / lib์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib64์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ€ / usr / lib64์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ€ / usr / lib์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib /์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ptf77blas, ptcblas, atlas๊ฐ€ / usr / lib /์— ์—†์Šต๋‹ˆ๋‹ค.

 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 atlas_info :
 /home/ross/.virtualenvs/tmp/lib์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ f77blas, cblas, atlas๊ฐ€ /home/ross/.virtualenvs/tmp/lib์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / local / lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ f77blas, cblas, atlas๊ฐ€ / usr / local / lib์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib64์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ f77blas, cblas, atlas๊ฐ€ / usr / lib64์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ f77blas, cblas, atlas๊ฐ€ / usr / lib์— ์—†์Šต๋‹ˆ๋‹ค.
 / usr / lib /์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack_atlas๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ f77blas, cblas, atlas๊ฐ€ / usr / lib /์— ์—†์Šต๋‹ˆ๋‹ค.

 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 ๊ฐ€์† ์ •๋ณด :
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 lapack_info :
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ lapack์ด [ '/home/ross/.virtualenvs/tmp/lib', '/ usr / local / lib', '/ usr / lib64', '/ usr / lib', '/ usr / lib /'์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ]
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 /home/ross/repos/numpy/numpy/distutils/system_info.py:1748 : UserWarning : 
 Lapack (http://www.netlib.org/lapack/) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ ํ•  ๋””๋ ‰ํ† ๋ฆฌ๋Š”
 numpy / distutils / site.cfg ํŒŒ์ผ (์„น์…˜ [lapack]) ๋˜๋Š” ์„ค์ •
 LAPACK ํ™˜๊ฒฝ ๋ณ€์ˆ˜.
 return getattr (self, '_calc_info _ {}'. format (name)) ()
 lapack_src_info :
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 /home/ross/repos/numpy/numpy/distutils/system_info.py:1748 : UserWarning : 
 Lapack (http://www.netlib.org/lapack/) ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
 ์†Œ์Šค๋ฅผ ๊ฒ€์ƒ‰ ํ•  ๋””๋ ‰ํ† ๋ฆฌ๋Š”
 numpy / distutils / site.cfg ํŒŒ์ผ (์„น์…˜ [lapack_src]) ๋˜๋Š” ์„ค์ •
 LAPACK_SRC ํ™˜๊ฒฝ ๋ณ€์ˆ˜.
 return getattr (self, '_calc_info _ {}'. format (name)) ()
 ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 numpy_linalg_lapack_lite :
 ๋…น์ด๋‹ค:
 ์–ธ์–ด = c
 define_macros = [( 'HAVE_BLAS_ILP64', ์—†์Œ), ( 'BLAS_SYMBOL_SUFFIX', '64_')]

 'numpy / random'์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ๋กœ : '{gen} .pxd'
 'numpy / random'์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ๋กœ : '{gen} .pxd'
 /usr/lib/python3.8/distutils/dist.py:274 : UserWarning : ์•Œ ์ˆ˜์—†๋Š” ๋ฐฐํฌ ์˜ต์…˜ : 'define_macros'
 warnings.warn (msg)
 build_ext ์‹คํ–‰
 build_src ์‹คํ–‰
 build_src
 py_modules ์†Œ์Šค ๋นŒ๋“œ
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ "npymath"์†Œ์Šค ๋นŒ๋“œ
 include_dirs์— 'numpy / core / src / npymath'๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
 ์—†์Œ-h_files = [ 'numpy / core / src / npymath / npy_math_internal.h']๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Œ
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ "npysort"์†Œ์Šค ๋นŒ๋“œ
 include_dirs์— 'numpy / core / src / common'์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
 ์—†์Œ-h_files = [ 'numpy / core / src / common / npy_sort.h', 'numpy / core / src / common / npy_partition.h', 'numpy / core / src / common / npy_binsearch.h']
 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ "npyrandom"์†Œ์Šค ๋นŒ๋“œ
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.core._multiarray_tests"์†Œ์Šค
 conv_template :> numpy / core / src / multiarray / _multiarray_tests.c
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.core._multiarray_umath"์†Œ์Šค
 conv_template :> numpy / core / src / multiarray / arraytypes.c
 conv_template :> numpy / core / src / multiarray / einsum.c
 conv_template :> numpy / core / src / multiarray / lowlevel_strided_loops.c
 conv_template :> numpy / core / src / multiarray / nditer_templ.c
 conv_template :> numpy / core / src / multiarray / scalartypes.c
 conv_template :> numpy / core / src / umath / funcs.inc
 include_dirs์— 'numpy / core / src / umath'๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
 conv_template :> numpy / core / src / umath / simd.inc
 conv_template :> numpy / core / src / umath / loops.h
 conv_template :> numpy / core / src / umath / loops.c
 conv_template :> numpy / core / src / umath / matmul.h
 conv_template :> numpy / core / src / umath / matmul.c
 conv_template :> numpy / core / src / umath / clip.h
 conv_template :> numpy / core / src / umath / clip.c
 conv_template :> numpy / core / src / umath / scalarmath.c
 conv_template :> numpy / core / src / npymath / npy_math_internal.h
 include_dirs์— 'numpy / core / src / npymath'๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
 conv_template :> numpy / core / src / npymath / ieee754.c
 conv_template :> numpy / core / src / npymath / npy_math_complex.c
 conv_template :> numpy / core / src / common / templ_common.h
 include_dirs์— 'numpy / core / src / common'์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
 conv_template :> numpy / core / src / common / npy_cpu_features.c
 numpy.core-h_files = [ 'numpy / core / src / umath / funcs.inc', 'numpy / core / src / umath / simd.inc', 'numpy / core / src / umath / loops.h ','numpy / core / src / umath / matmul.h ','numpy / core / src / umath / clip.h ','numpy / core / src / npymath / npy_math_internal.h ','numpy / core / src /common/templ_common.h ','numpy / core / include / numpy / config.h ','numpy / core / include / numpy / _numpyconfig.h ','numpy / core / include / numpy / __ multiarray_api.h ', 'numpy / core / include / numpy / __ ufunc_api.h']
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.core._umath_tests"์†Œ์Šค
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.core._rational_tests"์†Œ์Šค
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.core._struct_ufunc_tests"์†Œ์Šค
 ํ™•์žฅ "numpy.core._operand_flag_tests"์†Œ์Šค ๋นŒ๋“œ
 ๋นŒ๋”ฉ ํ™•์žฅ "numpy.fft._pocketfft_internal"์†Œ์Šค
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.linalg.lapack_lite"์†Œ์Šค
 ### ๊ฒฝ๊ณ  : ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ lapack ์‚ฌ์šฉ ###
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.linalg._umath_linalg"์†Œ์Šค
 ### ๊ฒฝ๊ณ  : ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ lapack ์‚ฌ์šฉ ###
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.random._mt19937"์†Œ์Šค
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.random._philox"์†Œ์Šค
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.random._pcg64"์†Œ์Šค
 ๋นŒ๋“œ ํ™•์žฅ "numpy.random._sfc64"์†Œ์Šค
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.random._common"์†Œ์Šค
 ํ™•์žฅ "numpy.random.bit_generator"์†Œ์Šค ๋นŒ๋“œ
 ํ™•์žฅ "numpy.random._generator"์†Œ์Šค ๋นŒ๋“œ
 ๋นŒ๋“œ ํ™•์žฅ "numpy.random._bounded_integers"์†Œ์Šค
 ๊ฑด๋ฌผ ํ™•์žฅ "numpy.random.mtrand"์†Œ์Šค
 data_files ์†Œ์Šค ๋นŒ๋“œ
 build_src : npy-pkg ๊ตฌ์„ฑ ํŒŒ์ผ ๋นŒ๋“œ
 UnixCCompiler ์‚ฌ์šฉ์ž ์ •์˜
 new_build_clib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UnixCCompiler ์‚ฌ์šฉ์ž ์ •์˜
 'npymath'๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌ์ถ•
 C ์†Œ์Šค ์ปดํŒŒ์ผ
 C ์ปดํŒŒ์ผ๋Ÿฌ : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march = x86-64 -mtune = generic -O3 -pipe -fno-plt -fno-semantic-interposition -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -fPIC

 ์ปดํŒŒ์ผ ์˜ต์…˜ : '-Inumpy / core / src / npymath -Inumpy / core / include -Inumpy / core / include / numpy -Inumpy / core / src / common -Inumpy / core / src -Inumpy / core -Inumpy / core / src / npymath -Inumpy / core / src / multiarray -Inumpy / core / src / umath -Inumpy / core / src / npysort -I / home / ross / .virtualenvs / tmp / include -I / usr / include / python3.8- Inumpy / core / src / common -Inumpy / core / src / npymath -c '
 ์ถ”๊ฐ€ ์˜ต์…˜ : '-std = c99'
 gcc : numpy / core / src / npymath / halffloat.c
 gcc : numpy / core / src / npymath / npy_math.c
 gcc : numpy / core / src / npymath / npy_math_complex.c
 gcc : numpy / core / src / npymath / ieee754.c
 ar : build / temp.linux-x86_64-3.8 / libnpymath.a์— 4 ๊ฐœ์˜ ๊ฐœ์ฒด ํŒŒ์ผ ์ถ”๊ฐ€
 'npyrandom'๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌ์ถ•
 C ์†Œ์Šค ์ปดํŒŒ์ผ
 C ์ปดํŒŒ์ผ๋Ÿฌ : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march = x86-64 -mtune = generic -O3 -pipe -fno-plt -fno-semantic-interposition -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -fPIC

 ์ปดํŒŒ์ผ ์˜ต์…˜ : '-Inumpy / core / include -Inumpy / core / include / numpy -Inumpy / core / src / common -Inumpy / core / src -Inumpy / core -Inumpy / core / src / npymath -Inumpy / core / src / multiarray -Inumpy / core / src / umath -Inumpy / core / src / npysort -I / home / ross / .virtualenvs / tmp / include -I / usr / include / python3.8 -Inumpy / core / src / common- Inumpy / core / src / npymath -c '
 ์ถ”๊ฐ€ ์˜ต์…˜ : '-std = c99'
 gcc : numpy / random / src / distributions / distributions.c
 gcc : numpy / random / src / distributions / random_mvhg_count.c
 gcc : numpy / random / src / distributions / random_mvhg_marginals.c
 gcc : numpy / random / src / distributions / random_hypergeometric.c
 ar : build / temp.linux-x86_64-3.8 / libnpyrandom.a์— 5 ๊ฐœ์˜ ๊ฐœ์ฒด ํŒŒ์ผ ์ถ”๊ฐ€
 UnixCCompiler ์‚ฌ์šฉ์ž ์ •์˜
 new_build_ext๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UnixCCompiler ์‚ฌ์šฉ์ž ์ •์˜
 'numpy.core._multiarray_tests'ํ™•์žฅ ๋นŒ๋“œ
 C ์†Œ์Šค ์ปดํŒŒ์ผ
 C ์ปดํŒŒ์ผ๋Ÿฌ : gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march = x86-64 -mtune = generic -O3 -pipe -fno-plt -fno-semantic-interposition -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -march = x86-64 -mtune = ์ผ๋ฐ˜ -O3 -pipe -fno-plt -fPIC

 ์ปดํŒŒ์ผ ์˜ต์…˜ : '-DNPY_INTERNAL_BUILD = 1 -DHAVE_NPY_CONFIG_H = 1 -D_FILE_OFFSET_BITS = 64 -D_LARGEFILE_SOURCE = 1 -D_LARGEFILE64_SOURCE = 1 -Inumpy / core / include -Inumpy / core / include / numpy -Inumpy / core / src / common -Inumpy / core / src -Inumpy / core -Inumpy / core / src / npymath -Inumpy / core / src / multiarray -Inumpy / core / src / umath -Inumpy / core / src / npysort -I / home / ross / .virtualenvs / tmp / ํฌํ•จ -I / usr / include / python3.8 -Inumpy / core / src / common -Inumpy / core / src / npymath -c '
 ์ถ”๊ฐ€ ์˜ต์…˜ : '-std = c99'
 gcc : numpy / core / src / common / mem_overlap.c
 gcc : numpy / core / src / multiarray / _multiarray_tests.c
 gcc -pthread -shared -Wl, -O1,-sort-common,-as-needed, -z, relro, -z, now -fno-semantic-interposition -Wl, -O1,-sort-common, --as-needed, -z, relro, -z, now build / temp.linux-x86_64-3.8 / numpy / core / src / multiarray / _multiarray_tests.o build / temp.linux-x86_64-3.8 / numpy / core / src / common / mem_overlap.o -L / usr / lib -Lbuild / temp.linux-x86_64-3.8 -lnpymath -o numpy / core / _multiarray_tests.cpython-38-x86_64-linux-gnu.so
 / usr / bin / ld : build / temp.linux-x86_64-3.8 / numpy / core / src / common / mem_overlap.o : /home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h : 1825 :`PyArrayDTypeMeta_Type '์˜ ๋‹ค์ค‘ ์ •์˜; build / temp.linux-x86_64-3.8 / numpy / core / src / multiarray / _multiarray_tests.o : /home/ross/repos/numpy/numpy/core/include/numpy/ndarraytypes.h : 1825 : ์—ฌ๊ธฐ์— ์ฒ˜์Œ ์ •์˜ ๋จ
 collect2 : ์˜ค๋ฅ˜ : ld๊ฐ€ 1 ์ข…๋ฃŒ ์ƒํƒœ๋ฅผ ๋ฆฌํ„ดํ–ˆ์Šต๋‹ˆ๋‹ค.
 ์˜ค๋ฅ˜ : ๋ช…๋ น "gcc -pthread -shared -Wl, -O1,-sort-common,-as-needed, -z, relro, -z, now -fno-semantic-interposition -Wl, -O1,- sort-common,-as-needed, -z, relro, -z, now build / temp.linux-x86_64-3.8 / numpy / core / src / multiarray / _multiarray_tests.o build / temp.linux-x86_64-3.8 / numpy / core / src / common / mem_overlap.o -L / usr / lib -Lbuild / temp.linux-x86_64-3.8 -lnpymath -o numpy / core / _multiarray_tests.cpython-38-x86_64-linux-gnu.so "์‹คํŒจ ์ข…๋ฃŒ ์ƒํƒœ 1

Numpy / Python ๋ฒ„์ „ ์ •๋ณด :

Python ๋ฒ„์ „ : 3.8.3
NumPy ๋ฒ„์ „ : 1809a0fde
GCC ๋ฒ„์ „ : 10.1

00 - Bug build

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์˜ค๋ฅ˜๋Š” ์„ ์–ธ์— extern ๋ˆ„๋ฝ์ด๋ฉฐ gh-16435๊ฐ€์ด๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Ross๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

๋‚˜๋Š” ๊ทธ ์ •์˜๊ฐ€ ์•„๋งˆ๋„ ๊ฑฐ๊ธฐ์—์žˆ๋Š” ๊ฒƒ์ด ์—„๊ฒฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์ด์ œ ๋‹น์‹ ์ด ์ฃผ๋ชฉ ํ–ˆ์œผ๋ฏ€๋กœ clang ์ •์  ๋ถ„์„์€ ๋‚˜์—๊ฒŒ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค). ๊ณต๊ฐœ ํ•  ๋•Œ๊นŒ์ง€ ํŠน์ • ํ—ค๋” ํŒŒ์ผ๋กœ ์ด๋™ํ•ด์•ผํ• ๊นŒ์š”?

๋‚˜๋„ gcc 10.1.1์„ ๋ณธ๋‹ค. ์–ด์ ฏ๋ฐค์— ๋‚ด OS๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ํ•ญ์ƒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„๋ณด๊ณ ์žˆ๋‹ค

jupiter<strong i="6">@23</strong>:06  โžค  gcc --version
gcc (GCC) 10.1.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

์˜ค๋ฅ˜๋Š” ์„ ์–ธ์— extern ๋ˆ„๋ฝ์ด๋ฉฐ gh-16435๊ฐ€์ด๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Ross๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰