private-octopus / picoquic

Minimal implementation of the QUIC protocol
MIT License
523 stars 153 forks source link

macOS Sonoma 14.4 build error #1675

Closed g2px1 closed 2 months ago

g2px1 commented 2 months ago

While building using make:

In file included from /Users/<myuser>/Downloads/picoquic/picohttp/h3zero_common.c:33:
In file included from /Users/<myuser>/Downloads/picoquic/picoquic/tls_api.h:24:
/Users/<myuser>/Downloads/picoquic/picoquic/picoquic_internal.h:1980:51: error: unknown type name 'picoquic_path_status_enum'; did you mean 'picoquic_state_enum'?
    picoquic_cnx_t* cnx, picoquic_path_t* path_x, picoquic_path_status_enum status);
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
                                                  picoquic_state_enum
/usr/local/include/picoquic.h:164:3: note: 'picoquic_state_enum' declared here
} picoquic_state_enum;
  ^
1 error generated.
make[2]: *** [CMakeFiles/picohttp-core.dir/picohttp/h3zero_common.c.o] Error 1
make[1]: *** [CMakeFiles/picohttp-core.dir/all] Error 2
make: *** [all] Error 2
hfstco commented 2 months ago

Everything fine here on Sonoma 14.4.1. (Apple Silicon (arm64) as well as Intel (x86_64))

Tried 436 tests, 0 fails.

Please check if picoquic_path_status_enum is defined here in picoquic.h.

Otherwise try to clone/update/checkout picoquic from GitHub again.

picoquic_path_status_enum != picoquic_state_enum picoquic_state_enum is the connection state and picoquic_path_status_enum tells you if a path is available or in standby.

cmake version 3.29.0 GNU make 3.81 Apple clang version 15.0.0 (clang-1500.3.9.4) Target: arm64-apple-darwin23.4.0

cmake version 3.29.2 GNU Make 3.81 Apple clang version 15.0.0 (clang-1500.3.9.4) Target: x86_64-apple-darwin23.4.0

g2px1 commented 2 months ago

I've tried to download again from GitHub. Still same trouble. Steps I do:

git clone https://github.com/private-octopus/picoquic.git
cd picoquic
cmake .
make

Full output:

<myuser>@MBP-Kirill-3 Downloads % git clone https://github.com/private-octopus/picoquic.git
Cloning into 'picoquic'...
remote: Enumerating objects: 29193, done.
remote: Counting objects: 100% (6563/6563), done.
remote: Compressing objects: 100% (752/752), done.
remote: Total 29193 (delta 6033), reused 6177 (delta 5810), pack-reused 22630
Receiving objects: 100% (29193/29193), 23.69 MiB | 5.37 MiB/s, done.
Resolving deltas: 100% (23187/23187), done.
<myuser>@MBP-Kirill-3 Downloads % cd picoquic
<myuser>@MBP-Kirill-3 picoquic % cmake .
-- The C compiler identification is AppleClang 15.0.0.15000309
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Initial CMAKE_C_FLAGS=
-- Found PTLS: /usr/local/lib/libpicotls-core.a  
-- picotls/include: /usr/local/include
-- picotls libraries: /usr/local/lib/libpicotls-core.a;/usr/local/lib/libpicotls-openssl.a;/usr/local/lib/libpicotls-minicrypto.a
-- PTLS compiled without support for Fusion
-- Found OpenSSL: /opt/homebrew/opt/openssl@3/lib/libcrypto.dylib (found version "3.2.1")  
-- root: 
-- OpenSSL_VERSION: 3.2.1
-- OpenSSL_INCLUDE_DIR: /opt/homebrew/opt/openssl@3/include
-- OpenSSL_LIBRARIES: /opt/homebrew/opt/openssl@3/lib/libssl.dylib;/opt/homebrew/opt/openssl@3/lib/libcrypto.dylib
-- CMAKE_C_FLAGS: 
-- CMAKE_CXX_FLAGS: 
-- Configuring done (1.0s)
-- Generating done (0.1s)
-- Build files have been written to: /Users/<myuser>/Downloads/picoquic
<myuser>@MBP-Kirill-3 picoquic % make
[  1%] Building C object CMakeFiles/picoquic-core.dir/picoquic/bbr.c.o
[  2%] Building C object CMakeFiles/picoquic-core.dir/picoquic/bbr1.c.o
[  3%] Building C object CMakeFiles/picoquic-core.dir/picoquic/bytestream.c.o
[  4%] Building C object CMakeFiles/picoquic-core.dir/picoquic/cc_common.c.o
[  4%] Building C object CMakeFiles/picoquic-core.dir/picoquic/config.c.o
[  5%] Building C object CMakeFiles/picoquic-core.dir/picoquic/cubic.c.o
[  6%] Building C object CMakeFiles/picoquic-core.dir/picoquic/fastcc.c.o
[  7%] Building C object CMakeFiles/picoquic-core.dir/picoquic/frames.c.o
[  8%] Building C object CMakeFiles/picoquic-core.dir/picoquic/intformat.c.o
[  9%] Building C object CMakeFiles/picoquic-core.dir/picoquic/logger.c.o
[  9%] Building C object CMakeFiles/picoquic-core.dir/picoquic/logwriter.c.o
[ 10%] Building C object CMakeFiles/picoquic-core.dir/picoquic/loss_recovery.c.o
[ 11%] Building C object CMakeFiles/picoquic-core.dir/picoquic/newreno.c.o
[ 12%] Building C object CMakeFiles/picoquic-core.dir/picoquic/packet.c.o
[ 13%] Building C object CMakeFiles/picoquic-core.dir/picoquic/performance_log.c.o
[ 13%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picohash.c.o
[ 14%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picoquic_lb.c.o
[ 15%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picoquic_ptls_fusion.c.o
[ 16%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picoquic_ptls_minicrypto.c.o
[ 17%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picoquic_ptls_openssl.c.o
[ 17%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picoquic_mbedtls.c.o
[ 18%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picosocks.c.o
[ 19%] Building C object CMakeFiles/picoquic-core.dir/picoquic/picosplay.c.o
[ 20%] Building C object CMakeFiles/picoquic-core.dir/picoquic/port_blocking.c.o
[ 21%] Building C object CMakeFiles/picoquic-core.dir/picoquic/prague.c.o
[ 22%] Building C object CMakeFiles/picoquic-core.dir/picoquic/quicctx.c.o
[ 22%] Building C object CMakeFiles/picoquic-core.dir/picoquic/sacks.c.o
[ 23%] Building C object CMakeFiles/picoquic-core.dir/picoquic/sender.c.o
[ 24%] Building C object CMakeFiles/picoquic-core.dir/picoquic/sim_link.c.o
[ 25%] Building C object CMakeFiles/picoquic-core.dir/picoquic/sockloop.c.o
[ 26%] Building C object CMakeFiles/picoquic-core.dir/picoquic/spinbit.c.o
[ 26%] Building C object CMakeFiles/picoquic-core.dir/picoquic/ticket_store.c.o
[ 27%] Building C object CMakeFiles/picoquic-core.dir/picoquic/timing.c.o
[ 28%] Building C object CMakeFiles/picoquic-core.dir/picoquic/token_store.c.o
[ 29%] Building C object CMakeFiles/picoquic-core.dir/picoquic/tls_api.c.o
[ 30%] Building C object CMakeFiles/picoquic-core.dir/picoquic/transport.c.o
[ 30%] Building C object CMakeFiles/picoquic-core.dir/picoquic/unified_log.c.o
[ 31%] Building C object CMakeFiles/picoquic-core.dir/picoquic/util.c.o
[ 32%] Linking C static library libpicoquic-core.a
[ 32%] Built target picoquic-core
[ 33%] Building C object CMakeFiles/picoquic-log.dir/loglib/autoqlog.c.o
[ 34%] Building C object CMakeFiles/picoquic-log.dir/loglib/cidset.c.o
[ 35%] Building C object CMakeFiles/picoquic-log.dir/loglib/csv.c.o
[ 35%] Building C object CMakeFiles/picoquic-log.dir/loglib/logconvert.c.o
[ 36%] Building C object CMakeFiles/picoquic-log.dir/loglib/logreader.c.o
[ 37%] Building C object CMakeFiles/picoquic-log.dir/loglib/qlog.c.o
[ 38%] Building C object CMakeFiles/picoquic-log.dir/loglib/svg.c.o
[ 39%] Linking C static library libpicoquic-log.a
[ 39%] Built target picoquic-log
[ 40%] Building C object CMakeFiles/picohttp-core.dir/picohttp/democlient.c.o
[ 41%] Building C object CMakeFiles/picohttp-core.dir/picohttp/demoserver.c.o
[ 42%] Building C object CMakeFiles/picohttp-core.dir/picohttp/h3zero.c.o
[ 42%] Building C object CMakeFiles/picohttp-core.dir/picohttp/h3zero_client.c.o
[ 43%] Building C object CMakeFiles/picohttp-core.dir/picohttp/h3zero_common.c.o
In file included from /Users/<myuser>/Downloads/picoquic/picohttp/h3zero_common.c:33:
In file included from /Users/<myuser>/Downloads/picoquic/picoquic/tls_api.h:24:
/Users/<myuser>/Downloads/picoquic/picoquic/picoquic_internal.h:1980:51: error: unknown type name 'picoquic_path_status_enum'; did you mean 'picoquic_state_enum'?
    picoquic_cnx_t* cnx, picoquic_path_t* path_x, picoquic_path_status_enum status);
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
                                                  picoquic_state_enum
/usr/local/include/picoquic.h:164:3: note: 'picoquic_state_enum' declared here
} picoquic_state_enum;
  ^
1 error generated.
make[2]: *** [CMakeFiles/picohttp-core.dir/picohttp/h3zero_common.c.o] Error 1
make[1]: *** [CMakeFiles/picohttp-core.dir/all] Error 2
make: *** [all] Error 2

cmake version 3.28.3 GNU Make 3.81 Apple clang version 15.0.0 (clang-1500.3.9.4) Target: arm64-apple-darwin23.4.0 Thread model: posix

hfstco commented 2 months ago

Please check if picoquic_path_status_enum is defined here in picoquic.h.

Please verify if picoquic_path_status_enum is defined in picoquic.h.

And run git rev-parse --short HEAD. Does it print "f673c4a5"?

g2px1 commented 2 months ago

Find something strange, there was already files such as picoquic_config.h, picoquic_packet_loop.h, picoquic.h in /usr/local/include. After deletion everything is building perfectly. No ideas why this files were placed in there, sorry

huitema commented 2 months ago

You probably did "make install" at some point in the past, that would explain how the files got there.