Project

General

Profile

Actions

Emulator Issues #13241

closed

Build failure on OpenBSD

Added by brad about 1 year ago. Updated about 1 year ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
5.0-19336

Description

Trying to build the latest on OpenBSD I noticed after this commit (https://github.com/dolphin-emu/dolphin/commit/86c1f6e1e7e2abcc3f42e1182134e632b218b6d3#diff-2412d2b4c890831b9bf32569d0b9affc0688138008fc6264f2533703d15de40c) that it's not possible to build.

Source/Core/Common/Thread.cpp:203:43: error: member reference type 'stack_t' (aka 'sigaltstack') is not a pointer; did you mean to use '.'?
  stack_addr = reinterpret_cast<u8*>(stack->ss_sp) - stack->ss_size;
                                     ~~~~~^~
                                          .
Source/Core/Common/Thread.cpp:203:59: error: member reference type 'stack_t' (aka 'sigaltstack') is not a pointer; did you mean to use '.'?
  stack_addr = reinterpret_cast<u8*>(stack->ss_sp) - stack->ss_size;
                                                     ~~~~~^~
                                                          .
Source/Core/Common/Thread.cpp:204:21: error: member reference type 'stack_t' (aka 'sigaltstack') is not a pointer; did you mean to use '.'?
  stack_size = stack->ss_size;
               ~~~~~^~
                    .
3 errors generated.
Actions #1

Updated by JosJuice about 1 year ago

Thanks for the report. That new piece of code was indeed not tested on OpenBSD.

If you replace all three instances of stack-> with stack. in that piece of code, does it build?

Actions #2

Updated by brad about 1 year ago

Yes, with that change Thread.cpp now builds.

Actions #3

Updated by JosJuice about 1 year ago

Could you check that Dolphin also runs correctly without errors? If you don't see a popup saying "Stack is too small for BLR optimization", then everything should be fine.

Actions #4

Updated by brad about 1 year ago

I am still working out build issues updating the port.

I provided another build fix as well.

https://github.com/dolphin-emu/dolphin/pull/11793

Actions #5

Updated by brad about 1 year ago

This was the issue I ran into..

[1/745] cd /home/brad/tmp/ffmpeg-ports/ports/pobj/dolphin-5.0.0.20230424/dolphin-5.0.0.20230424/Externals/mGBA/mgba && /usr/local/bin/cmake -DBINARY_NAME=mgba -DCONFIG_FILE=/home/brad/tmp/ffmpeg-ports/ports/pobj/dolphin-5.0.0.20230424/dolphin-5.0.0.20230424/Externals/mGBA/mgba/src/core/version.c.in -DOUT_FILE=/home/brad/tmp/ffmpeg-ports/ports/pobj/dolphin-5.0.0.20230424/build-amd64/Externals/mGBA/mgba/version.c -P /home/brad/tmp/ffmpeg-ports/ports/pobj/dolphin-5.0.0.20230424/dolphin-5.0.0.20230424/Externals/mGBA/mgba/version.cmake
[2/745] : && /home/brad/tmp/ffmpeg-ports/ports/pobj/dolphin-5.0.0.20230424/bin/c++ -O2 -pipe -DNDEBUG -L/usr/X11R6/lib -L/usr/local/lib Source/Core/Common/CMakeFiles/traversal_server.dir/TraversalServer.cpp.o -o Binaries/traversal_server  Source/Core/Common/libcommon.a  -lpthread  Externals/enet/libenet.a  /usr/local/lib/libfmt.so.1.1  -Wl,--as-needed  /usr/local/lib/libmbedtls.so.7.0  /usr/local/lib/libmbedx509.so.3.2  /usr/local/lib/libmbedcrypto.so.5.0  -lminizip-ng  /usr/local/lib/libcurl.so.26.19  Externals/FatFs/libFatFs.a  /usr/local/lib/libiconv.so.7.1  Externals/libspng/libspng.a  Externals/zlib-ng/zlib-ng/libz.a  /usr/X11R6/lib/libEGL.so.2.0  /usr/X11R6/lib/libGL.so.18.0  /usr/X11R6/lib/libGLU.so.9.0  /usr/local/lib/libminiupnpc.so.3.0 && :
FAILED: Binaries/traversal_server
: && /home/brad/tmp/ffmpeg-ports/ports/pobj/dolphin-5.0.0.20230424/bin/c++ -O2 -pipe -DNDEBUG -L/usr/X11R6/lib -L/usr/local/lib Source/Core/Common/CMakeFiles/traversal_server.dir/TraversalServer.cpp.o -o Binaries/traversal_server  Source/Core/Common/libcommon.a  -lpthread  Externals/enet/libenet.a  /usr/local/lib/libfmt.so.1.1  -Wl,--as-needed  /usr/local/lib/libmbedtls.so.7.0  /usr/local/lib/libmbedx509.so.3.2  /usr/local/lib/libmbedcrypto.so.5.0  -lminizip-ng  /usr/local/lib/libcurl.so.26.19  Externals/FatFs/libFatFs.a  /usr/local/lib/libiconv.so.7.1  Externals/libspng/libspng.a  Externals/zlib-ng/zlib-ng/libz.a  /usr/X11R6/lib/libEGL.so.2.0  /usr/X11R6/lib/libGL.so.18.0  /usr/X11R6/lib/libGLU.so.9.0  /usr/local/lib/libminiupnpc.so.3.0 && :
ld.lld: error: unable to find library -lminizip-ng

CMake found the system / local pacakge copy of minizip. I hacked around the CMake check to disable finding the local copy and utilizing the Externals/ copy. But I don't know why it failed like this.

humpty$ pkg_info -L minizip
Information for inst:minizip-3.0.6

Files:
/usr/local/bin/minigzip
/usr/local/bin/minizip
/usr/local/include/minizip/mz.h
/usr/local/include/minizip/mz_compat.h
/usr/local/include/minizip/mz_crypt.h
/usr/local/include/minizip/mz_os.h
/usr/local/include/minizip/mz_strm.h
/usr/local/include/minizip/mz_strm_buf.h
/usr/local/include/minizip/mz_strm_bzip.h
/usr/local/include/minizip/mz_strm_lzma.h
/usr/local/include/minizip/mz_strm_mem.h
/usr/local/include/minizip/mz_strm_os.h
/usr/local/include/minizip/mz_strm_pkcrypt.h
/usr/local/include/minizip/mz_strm_split.h
/usr/local/include/minizip/mz_strm_wzaes.h
/usr/local/include/minizip/mz_strm_zlib.h
/usr/local/include/minizip/mz_strm_zstd.h
/usr/local/include/minizip/mz_zip.h
/usr/local/include/minizip/mz_zip_rw.h
/usr/local/include/minizip/unzip.h
/usr/local/include/minizip/zip.h
/usr/local/lib/cmake/minizip/minizip-config-version.cmake
/usr/local/lib/cmake/minizip/minizip-config.cmake
/usr/local/lib/cmake/minizip/minizip-release.cmake
/usr/local/lib/cmake/minizip/minizip.cmake
/usr/local/lib/libminizip.so.1.1
/usr/local/lib/pkgconfig/minizip.pc
Actions #6

Updated by JosJuice about 1 year ago

  • Status changed from New to Fixed
  • Fixed in set to 5.0-19336
Actions

Also available in: Atom PDF