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

Support building on modern MSYS2 #13

Merged

Conversation

qmfrederik
Copy link

This PR:

  • Gets the Eggplant fork of libs-gui running on modern MSYS2, by cherry-picking a number of commits off the main libs-gui branch
  • Ensures compatibility with both Eggplant's fork of libs-base and libs-main 1.29
  • Adds CI to ensure the code compiles correctly

qmfrederik and others added 13 commits November 1, 2024 23:55
	* Source/NSSavePanel.m: Fix return type of sorting function.
…nerating COFF files.

See https://reviews.llvm.org/D75989 and https://maskray.me/blog/2021-04-25-weak-symbol

This would lead to linker errors like this:

```
C:/tools/msys64/ucrt64/bin/ld: obj/libgnustep-gui.obj/NSBitmapImageRep+GIF.m.o:NSBitmapImageRep+G:(.rdata+0x418): multiple definition of `.weak.__objc_class_ref_NSString.default..objc_sel_namealloc'; obj/libgnustep-gui.obj/NSAttributedString.m.o:NSAttributedString:(.rdata+0xc38): first defined here
C:/tools/msys64/ucrt64/bin/ld: obj/libgnustep-gui.obj/NSBitmapImageRep+GIF.m.o:NSBitmapImageRep+G:(.rdata+0x508): multiple definition of `.weak.__objc_class_ref_NSNumber.default..objc_sel_namealloc'; obj/libgnustep-gui.obj/NSAttributedString.m.o:NSAttributedString:(.rdata+0xc20): first defined here
C:/tools/msys64/ucrt64/bin/ld: obj/libgnustep-gui.obj/NSBitmapImageRep+ICNS.m.o:NSBitmapImageRep+I:(.rdata+0x400): multiple definition of `.weak.__objc_class_ref_NSData.default..objc_sel_namealloc'; obj/libgnustep-gui.obj/NSBitmapImageRep+GIF.m.o:NSBitmapImageRep+G:(.rdata+0x4f0): first defined here
```
…SIArrayItem and GSIArray. This issue wasn't caught by CI since gui was not recompiled after base was altered.
This class is shared between the StandardPicker bundle and the WheelPicker bundles.  Exposing a class with the same name in two separate bundles results in undefined behavior.  Move this class to a shared module (libs-gui in this case) to resolve that.
Copy link

@johnathan-becker johnathan-becker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes all look good to me. I don't see anything that worries me.

Copy link

@johnathan-becker johnathan-becker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@johnathan-becker johnathan-becker merged commit b7074e5 into keysight-eggplant:gnustep_testplant_branch Dec 17, 2024
2 checks passed
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.

5 participants