Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to 9.4.2 -- Add IndexBinaryOp #136

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

jim22k
Copy link
Member

@jim22k jim22k commented Dec 18, 2024

No description provided.

@eriknw eriknw closed this Dec 18, 2024
@eriknw eriknw reopened this Dec 18, 2024
@alugowski
Copy link
Collaborator

Need to update https://github.com/GraphBLAS/python-suitesparse-graphblas/blob/main/GB_VERSION.txt

@eriknw
Copy link
Member

eriknw commented Dec 19, 2024

Tests are passing (🎉), but wheel builds are failing. @alugowski do you have a moment to take a look?

@alugowski
Copy link
Collaborator

Tests use the library built by conda, wheels build it ourselves. Looks like there are differences.

Linux error:

  ../venv/lib/python3.9/site-packages/suitesparse_graphblas/__init__.py:7: in <module>
      from ._graphblas import ffi, lib
  E   ImportError: /tmp/tmp.kWfsLrL72N/venv/lib/python3.9/site-packages/suitesparse_graphblas/../suitesparse_graphblas.libs/libgraphblas-c7173593.so.9.4.2: undefined symbol: GB__Adot2B__plus_firstj_int32

Seems related to this point in the release notes for upstream 9.4.2:

  • removed Factory kernels for: types int8 and uint8, and semirings:
    max_min, max_plus, max_times, min_max, min_times, plus_min, plus_max,
    non-Boolean land/lor/lxor/lxnor, and integer times_first/second,
    to reduce size of compiled library. JIT kernels will be used instead
    for these types and semirings.

Does that mean the library needs to be built differently? Or cffi needs to be updated?

We don't have the JIT, so if someone uses those JIT-only kernels then something appropriate needs to happen.

@alugowski
Copy link
Collaborator

On macos:

    gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -g -arch arm64 -I/private/var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/cibw-run-1yzrg22y/cp39-macosx_arm64/build/venv/include -I/private/var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/cibw-run-1yzrg22y/cp39-macosx_arm64/build/venv/include/suitesparse -I/private/var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/cibw-run-1yzrg22y/cp39-macosx_arm64/build/venv/include -I/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c build/temp.macosx-11.0-arm64-cpython-39/suitesparse_graphblas._graphblas.c -o build/temp.macosx-11.0-arm64-cpython-39/build/temp.macosx-11.0-arm64-cpython-39/suitesparse_graphblas._graphblas.o
    build/temp.macosx-11.0-arm64-cpython-39/suitesparse_graphblas._graphblas.c:574:10: fatal error: 'GraphBLAS.h' file not found
    #include "GraphBLAS.h"
             ^~~~~~~~~~~~~
    1 error generated.

Sounds like the directories where GraphBLAS puts things changed yet again. Someone needs to track down the new include directory on macos and make sure the build system looks there. IIRC the include search path is around here:

@alugowski
Copy link
Collaborator

Windows failure appears to also be the undefined symbols to the no-longer-included kernels.

@DrTimothyAldenDavis
Copy link
Member

I didn't move the location of GraphBLAS.h. Also, the library still has GB__Adot2B__plus_firstj_int32:

$ nm -gD libgraphblas.so.9.4.2 | grep Adot2B__plus_firstj_
0000000001752b00 T GB__Adot2B__plus_firstj_int32
0000000001752b70 T GB__Adot2B__plus_firstj_int64

So the error you're seeing is not related to any symbols I removed.

I did remove the built-in int8 and uint8 types from most of the FactoryKernels, to reduce the compile time and library size. These are all that are left for uint8:

 $ nm -gD libgraphblas.so.9.4.2 | grep _uint8
0000000000434140 T GB_bitclr_uint8
0000000000433f30 T GB_bitget_uint8
0000000000434030 T GB_bitset_uint8
00000000004341d0 T GB_bitshift_uint8
0000000000344880 T GB__cast_bool_uint8_t
0000000000345980 T GB__cast_double_uint8_t
00000000003457e0 T GB__cast_float_uint8_t
0000000000345b20 T GB__cast_GxB_FC32_t_uint8_t
0000000000345ce0 T GB__cast_GxB_FC64_t_uint8_t
0000000000344b80 T GB__cast_int16_t_uint8_t
0000000000344d50 T GB__cast_int32_t_uint8_t
0000000000344f20 T GB__cast_int64_t_uint8_t
00000000003449b0 T GB__cast_int8_t_uint8_t
0000000000344710 T GB_cast_to_uint8_t
0000000000345260 T GB__cast_uint16_t_uint8_t
00000000003453f0 T GB__cast_uint32_t_uint8_t
0000000000345580 T GB__cast_uint64_t_uint8_t
00000000003450a0 T GB__cast_uint8_t_bool
0000000000345170 T GB__cast_uint8_t_double
0000000000345130 T GB__cast_uint8_t_float
00000000003451a0 T GB__cast_uint8_t_GxB_FC32_t
00000000003451e0 T GB__cast_uint8_t_GxB_FC64_t
00000000003450c0 T GB__cast_uint8_t_int16_t
00000000003450d0 T GB__cast_uint8_t_int32_t
00000000003450e0 T GB__cast_uint8_t_int64_t
00000000003450b0 T GB__cast_uint8_t_int8_t
0000000000345100 T GB__cast_uint8_t_uint16_t
0000000000345110 T GB__cast_uint8_t_uint32_t
0000000000345120 T GB__cast_uint8_t_uint64_t
00000000003450f0 T GB__cast_uint8_t_uint8_t
0000000000434500 T GB_idiv_uint8
0000000000435850 T GB_pow_uint8
0000000002f25ef0 T GB__sel_bitmap__eq_thunk_uint8
0000000002f2dc00 T GB__sel_bitmap__ge_thunk_uint8
0000000002f358b0 T GB__sel_bitmap__gt_thunk_uint8
0000000002f3d4c0 T GB__sel_bitmap__le_thunk_uint8
0000000002f45130 T GB__sel_bitmap__lt_thunk_uint8
0000000002f4e990 T GB__sel_bitmap__ne_thunk_uint8
0000000002f25d10 T GB__sel_phase1__eq_thunk_uint8
0000000002f2da10 T GB__sel_phase1__ge_thunk_uint8
0000000002f356c0 T GB__sel_phase1__gt_thunk_uint8
0000000002f3d2d0 T GB__sel_phase1__le_thunk_uint8
0000000002f44f40 T GB__sel_phase1__lt_thunk_uint8
0000000002f4e7a0 T GB__sel_phase1__ne_thunk_uint8
0000000002f25e10 T GB__sel_phase2__eq_thunk_uint8
0000000002f2db10 T GB__sel_phase2__ge_thunk_uint8
0000000002f357c0 T GB__sel_phase2__gt_thunk_uint8
0000000002f3d3d0 T GB__sel_phase2__le_thunk_uint8
0000000002f45040 T GB__sel_phase2__lt_thunk_uint8
0000000002f4e8a0 T GB__sel_phase2__ne_thunk_uint8
0000000002f51400 T GB__sel_phase2__nonzombie_uint8
0000000002f9af90 T GB__uop_apply__identity_bool_uint8
0000000002fa12a0 T GB__uop_apply__identity_fc32_uint8
0000000002fa7940 T GB__uop_apply__identity_fc64_uint8
0000000002fad910 T GB__uop_apply__identity_fp32_uint8
0000000002fb38d0 T GB__uop_apply__identity_fp64_uint8
0000000002fb3a60 T GB__uop_apply__identity_int16_uint8
0000000002fba690 T GB__uop_apply__identity_int32_uint8
0000000002fc0d20 T GB__uop_apply__identity_int64_uint8
0000000002fc0eb0 T GB__uop_apply__identity_int8_uint8
0000000002fc1040 T GB__uop_apply__identity_uint16_uint8
0000000002fc7960 T GB__uop_apply__identity_uint32_uint8
0000000002fce240 T GB__uop_apply__identity_uint64_uint8
0000000002fce260 T GB__uop_apply__identity_uint8_bool
0000000002fce280 T GB__uop_apply__identity_uint8_fc32
0000000002fce2a0 T GB__uop_apply__identity_uint8_fc64
0000000002fce2c0 T GB__uop_apply__identity_uint8_fp32
0000000002fce2e0 T GB__uop_apply__identity_uint8_fp64
0000000002fce300 T GB__uop_apply__identity_uint8_int16
0000000002fce320 T GB__uop_apply__identity_uint8_int32
0000000002fce340 T GB__uop_apply__identity_uint8_int64
0000000002fce360 T GB__uop_apply__identity_uint8_int8
0000000002fce380 T GB__uop_apply__identity_uint8_uint16
0000000002fce3a0 T GB__uop_apply__identity_uint8_uint32
0000000002fce3c0 T GB__uop_apply__identity_uint8_uint64
0000000002f9afa0 T GB__uop_tran__identity_bool_uint8
0000000002fa12b0 T GB__uop_tran__identity_fc32_uint8
0000000002fa7950 T GB__uop_tran__identity_fc64_uint8
0000000002fad920 T GB__uop_tran__identity_fp32_uint8
0000000002fb38e0 T GB__uop_tran__identity_fp64_uint8
0000000002fb3a70 T GB__uop_tran__identity_int16_uint8
0000000002fba6a0 T GB__uop_tran__identity_int32_uint8
0000000002fc0d30 T GB__uop_tran__identity_int64_uint8
0000000002fc0ec0 T GB__uop_tran__identity_int8_uint8
0000000002fc1050 T GB__uop_tran__identity_uint16_uint8
0000000002fc7970 T GB__uop_tran__identity_uint32_uint8
0000000002fce250 T GB__uop_tran__identity_uint64_uint8
0000000002fce270 T GB__uop_tran__identity_uint8_bool
0000000002fce290 T GB__uop_tran__identity_uint8_fc32
0000000002fce2b0 T GB__uop_tran__identity_uint8_fc64
0000000002fce2d0 T GB__uop_tran__identity_uint8_fp32
0000000002fce2f0 T GB__uop_tran__identity_uint8_fp64
0000000002fce310 T GB__uop_tran__identity_uint8_int16
0000000002fce330 T GB__uop_tran__identity_uint8_int32
0000000002fce350 T GB__uop_tran__identity_uint8_int64
0000000002fce370 T GB__uop_tran__identity_uint8_int8
0000000002fce390 T GB__uop_tran__identity_uint8_uint16
0000000002fce3b0 T GB__uop_tran__identity_uint8_uint32
0000000002fce3d0 T GB__uop_tran__identity_uint8_uint64
0000000002fce3e0 T GB__uop_tran__identity_uint8_uint8

@DrTimothyAldenDavis
Copy link
Member

GraphBLAS will still compute the correct result for uint8 and int8 types. It will either use the JIT if that's available, or if not, it will use the generic kernels. Those are slower but they still work just fine.

@DrTimothyAldenDavis
Copy link
Member

I don't know if this is related: When I saw you were having these errors, I thought I would try some more testing of GraphBLAS 9.4.2 by updating the main SuiteSparse repo with this version (I hadn't done that yet). The SuiteSparse repo has an extensive cross-platform CI.

I encountered some errors because 10 semirings got inadvertently defined twice in GraphBLAS.h:
DrTimothyAldenDavis/GraphBLAS@196a2aa

It's a quick fix, but I'm not sure if this problem is related to yours.

These extra definitions only cause problems if GraphBLAS.h is #include'd in a C++ program, since one set of the duplicate definitions was inside an extern "C" {...} block and the other wasn't.

I'll release a GraphBLAS 9.4.3 shortly -- probably by tomorrow (Dec 20).

@alugowski
Copy link
Collaborator

@DrTimothyAldenDavis it looks like it might be related.

The Windows build has a better error message. Linux fails at library import while Windows fails earlier at the GraphBLAS link step and lists all the missing symbols, not just one.

See full list in the Actions output: https://github.com/GraphBLAS/python-suitesparse-graphblas/actions/runs/12404089168/job/34628708451?pr=136#step:9:3393

They're repeats of these, just called from different .c files:

  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x574): undefined reference to `GB__Adot4B__max_firsti1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x70c): undefined reference to `GB__Adot4B__max_firstj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x78c): undefined reference to `GB__Adot4B__max_firstj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x80c): undefined reference to `GB__Adot4B__max_secondj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x88c): undefined reference to `GB__Adot4B__max_firsti_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xb30): undefined reference to `GB__Adot4B__max_secondj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xb8f): undefined reference to `GB__Adot4B__times_firstj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xbef): undefined reference to `GB__Adot4B__times_firsti_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xc4f): undefined reference to `GB__Adot4B__times_firsti1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xcaf): undefined reference to `GB__Adot4B__times_secondj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xd0f): undefined reference to `GB__Adot4B__times_firstj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xe66): undefined reference to `GB__Adot4B__times_secondj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xebe): undefined reference to `GB__Adot4B__min_firstj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xf16): undefined reference to `GB__Adot4B__min_firstj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xf6e): undefined reference to `GB__Adot4B__min_firsti1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0xfc6): undefined reference to `GB__Adot4B__min_secondj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x101e): undefined reference to `GB__Adot4B__min_firsti_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1076): undefined reference to `GB__Adot4B__min_secondj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x114e): undefined reference to `GB__Adot4B__plus_firsti_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x11a6): undefined reference to `GB__Adot4B__plus_secondj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x11fe): undefined reference to `GB__Adot4B__plus_firsti1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1256): undefined reference to `GB__Adot4B__plus_secondj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x12ae): undefined reference to `GB__Adot4B__plus_firstj_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1306): undefined reference to `GB__Adot4B__plus_firstj1_int64'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1447): undefined reference to `GB__Adot4B__max_firsti_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x14bf): undefined reference to `GB__Adot4B__max_secondj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1537): undefined reference to `GB__Adot4B__max_firstj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1597): undefined reference to `GB__Adot4B__times_secondj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x160f): undefined reference to `GB__Adot4B__max_secondj_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1687): undefined reference to `GB__Adot4B__max_firsti1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x16e7): undefined reference to `GB__Adot4B__times_firstj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x175f): undefined reference to `GB__Adot4B__max_firstj_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x17bf): undefined reference to `GB__Adot4B__times_firsti_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x181f): undefined reference to `GB__Adot4B__times_firsti1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x187f): undefined reference to `GB__Adot4B__times_secondj_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x18df): undefined reference to `GB__Adot4B__times_firstj_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1b86): undefined reference to `GB__Adot4B__min_secondj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1bde): undefined reference to `GB__Adot4B__min_firsti_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1c30): undefined reference to `GB__Adot4B__plus_firsti1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1c82): undefined reference to `GB__Adot4B__plus_firstj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1cde): undefined reference to `GB__Adot4B__min_firsti1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1d36): undefined reference to `GB__Adot4B__min_secondj_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1d88): undefined reference to `GB__Adot4B__plus_secondj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1dde): undefined reference to `GB__Adot4B__min_firstj1_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1e30): undefined reference to `GB__Adot4B__plus_secondj_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1e82): undefined reference to `GB__Adot4B__plus_firstj_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1ed4): undefined reference to `GB__Adot4B__plus_firsti_int32'
  C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/GraphBLAS.dir/objects.a(GB_AxB_dot4.c.obj):GB_AxB_dot4.c:(.text+0x1f2e): undefined reference to `GB__Adot4B__min_firstj_int32'

@alugowski
Copy link
Collaborator

These workflows produce output in sections. Click the little arrow to expand the section and you can then see the full log with the error messages.

This is a blessing because each step produces a mountain of output (see line numbers).

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants