SDL-Hercules-390 / hyperion

The SDL Hercules 4.x Hyperion version of the System/370, ESA/390, and z/Architecture Emulator
Other
237 stars 89 forks source link

Fix build errors related to quadword fetch and store #671

Closed mtalexander closed 1 month ago

mtalexander commented 1 month ago

This fixes undefined symbols during linking for _fetch_qw_noswap and _store_qw_noswap.

mtalexander commented 1 month ago

GitHub seems to make everything hard. For some reason I can't change the default branch from Master to Develop. The settings page says it's develop, but pull requests still go against master. even though the branch being "pulled" is based on develop. I didn't notice this last night, but I did it again now and I think it's ok. I'm sure I'll hear about it if not. Sorry for the trouble.

Mike

On 5 Jul 2024, at 2:47, Fish-Git wrote:

@Fish-Git requested changes on this pull request.

REJECTED.

You either cloned the wrong repository, failed to switch your clone to the correct branch ('develop') before doing your merge , or did something else wrong, because practically every single file is significantly different from the current development branch's. Merging yor changes would destroy most of the work we have accomplished over the past year or more.

Maybe you should simply submit a patch instead of a Pull request? Either that or try creating your Pull request again. You obviously did something wrong.

OR... you failed to keep your working (development) Hercules repository in sync with current development. You DO know you have to periodically do 'git pull' requests during you HIM development to pick up the changes we have been making for the past year, yes?

Sorry!  :(

-- Reply to this email directly or view it on GitHub: https://github.com/SDL-Hercules-390/hyperion/pull/671#pullrequestreview-2160055959 You are receiving this because you authored the thread.

Message ID: @.***>

wrljet commented 1 month ago

I'm curious why this is needed? I haven't heard this from others, and many are building SDL Hercules every day.

Can you please share your exactly sequence of commands you're using to build Hercules?

Bill

mtalexander commented 1 month ago

It's probably not the build commands that matter, it's more likely the build environment. I'm building using clang on an M2 Mac Mini running MacOS 13.6.7. I may be the first person to try to build this version of Hercules on that configuration. Obviously someone thought these undefs were needed for all the other fetch and store macros. It seems to make sense that they would be required for the 4 new ones added recently.

Here is the configure command I used. This hasn't changed in several years. This is the debug build, the optimized build is slightly different.

| Environment:
|     CXX = '/opt/local/bin/clang++'
|     CC = '/opt/local/bin/clang'
|     CFLAGS = '-Wno-unused-but-set-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-format -Wno-sign-compare -Wno-unused-but-set-variable -Wno-main -Wno-pointer-to-int-cast'
|     CPPFLAGS = '-I/opt/local/include -DSUPPRESS_PARTIAL_KEEPALIVE_WARNING'
|     LDFLAGS = '-L/opt/local/lib'
|     PKG_CONFIG_PATH = '/opt/local/share/pkgconfig:/opt/local/lib/pkgconfig:/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig'
|     PATH = '/Users/mta/bin:/Applications/AraxisMerge/Utilities:/opt/local/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMwareFusion.app/Contents/Public:/usr/local/MacGPG2/bin:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/local/libexec/qt5/bin:/Applications/Xcode.app/Contents/Developer/Tools:/Users/mta/perl/bin:/tools/hercules/install.opt/darwin/bin:/tools/hercules/install.opt/bin:/tools/xemacs-21.5/install/darwin/bin'
| Executing '/Users/mta/bin/bash \
|            ../../hercules/configure
|            --prefix=/tools/hercules-SDL/install
|            --exec-prefix=/tools/hercules-SDL/install/darwin
|            --enable-cckd-bzip2
|            --enable-het-bzip2
|            --disable-capabilities
|            --disable-automatic-operator
|            --enable-extpkgs=/tools/hercules-SDL/extpkgs
|            --without-included-ltdl
|            --enable-debug=yes
|            --enable-optimization='-g
|            -g3
|            -ggdb3
|            -O0
|            -DOPTION_NO_WATCHDOG'
|           '
wrljet commented 1 month ago

Mike,

I only have an M1, but I doubt M2 would act any differently.

What Clang version are you running?

I just tried things on Mac Mini M1 with macOS 14.5, Clang 15.0, and it's still building "for me". (Did not try with -O0 though.)

That said, with your changes applied it still works. So let's go for it.

Bill