Git Product home page Git Product logo

tools-make's People

Contributors

afedor avatar alexmalmberg avatar blake-nicholson avatar buzzdeee avatar david-ayers avatar davidchisnall avatar dlazaro avatar eheintzmann avatar fredkiefer avatar gcasa avatar germangt avatar hmelder avatar ivucica avatar masatake avatar mirkoevo avatar mjray avatar ngrewe avatar nico-31415 avatar ovidiucp avatar p3l6 avatar plaurent avatar ratmice avatar rfm avatar rmottola avatar schristley avatar sensetalkdoug avatar srbaker avatar triplef avatar trunkmaster avatar wlux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tools-make's Issues

Bundles are not working properly on FreeBSD 12.2

A recent issue was discussed on the list regarding -r and -rdynamic. A suggestion was made to remove -rdynamic from the subproject. The issue with doing this is that this impacts bundles being loaded. In 1998, RFM made a change to add -rdynamic to "Allow bundles to work properly" and until recently this worked just fine on FreeBSD.

Steps to reproduce this are:

  1. download and GNUstep on FreeBSD
  2. modify target.make to remove -rdynamic from ADDITIONAL_LDFLAGS
  3. build GNUstep and install
  4. build Gorm
  5. run Gorm

Current result: Bundles and shared libraries refuse to load
Expected: Bundles and shared libraries should load.

Now... this change could be more specific, but it leads me to conclude that if this change were applied to bundles that they too would not load properly. So, I believe the issue is with the linker used. Currently mine is set to use ld.lld.

GS_CHECK_ABI20_LINKER not working as intended

As described in the clang manpage:

-print-prog-name=<name>
              Print the full program path of name.

The current linker check function greps this path for occurrences of lld, ld, or gold. As demonstrated below, this does not work and probably has never worked (except when changing the linker system-wide).

hugo@GNUstep:/tmp$ clang -Wl,--verbose -fuse-ld=lld --print-prog-name=ld
/usr/bin/ld
hugo@GNUstep:/tmp$ clang -Wl,--verbose -fuse-ld=lld --print-prog-name=ld.lld
/usr/bin/ld.lld

There are multiple ways to check for the linker:

  1. Pass -Wl,--verbose as compiler argument and grep the output
  2. Check LDFLAGS for -fuse-ld

While Configuring GNUmake its unable to find libobjc

I'm trying to build a gnustep DLL on windows. I have first built objc.dll file following the instructions mention in GNU-Wiki using the libobjc2 source code and I started configuring the gnumake. while configuring its showing the following things:

checking for libobjc... no
checking for domains containing libraries libobjc.a, libobjc.so, libobjc.dll.a, libobjc-gnu.dylib, objc.lib... (none)
checking for domains containing headers objc/objc.h... (none)
checking for custom shared objc library domain...
checking whether objc has thread support... no
checking whether Objective-C++ is supported... yes
checking whether we should use ARC... not requested by user
checking for the flag to use to do partial linking... -r
checking for the GCC version... 11.2
checking for __objc_load... no
checking whether runtime library supports the gnustep-2.0 ABI... no
checking for runtime ABI... gcc
checking whether the compiler supports native ObjC exceptions... no
checking if the compiler supports autodependencies... yes: gcc version is 11.2 >= 3.0

The above command line output shows its couldn't find the libobjc and the compiler we are using doesn't support native objc exception. I want to configure make with libojc and with native objc exception support. Any help is much appreciated?

libraries not correct linked on FreeBSD

On FreeBSD 13 I noticed that libraries are not symlinked the classic way, but things are being copied:

-rwxr-xr-x  1 multix  wheel  13419712 Nov 21 01:54 libgnustep-base.so
-rwxr-xr-x  1 multix  wheel  13419712 Nov 21 01:54 libgnustep-base.so.1.29
-rwxr-xr-x  1 multix  wheel  13419712 Nov 21 01:54 libgnustep-base.so.1.29.0

It used to work and on a system with FreeBSD it still works, as it works on linux.

Alpine Linux / musl C library support broken at link stage

We broke build on Alpine Liunx somewhen in the past year. When building base, everything compiles, but links badly. gnustep base itself is not built as a shared library and compiling things like autogsdoc will give missing symbols of a lot of base dependencies (e.g. gz, tls, etc). The issue comes from gnustep make, since checking out older versions with current base, makes a working base.

I tracked it down between these two commits:

Broken:


commit 5dd6aee069089a75ef8ef7a5185dd8fe147f3b8a (HEAD)
Author: Hugo Melder <[email protected]>
Date:   Tue Aug 2 19:25:07 2022 +0200

    Cleanup config.make.in

Working:

commit fd76f00ab873d73a000f4546e52e1686331cda0c (HEAD)
Author: Richard Frith-Macdonald <[email protected]>
Date:   Wed Feb 16 09:28:34 2022 +0000

    Unless --failfast is specified, all test files should be executed.

GNUSTEP_USER_ROOT is obsolete should be a warning....

/usr/GNUstep/System/Library/Makefiles/config-noarch.make:141: *** GNUSTEP_USER_ROOT is obsolete.  Stop.
This is gnustep-make 2.9.0. Type 'make print-gnustep-make-help' for help.
Running in gnustep-make version 2 strict mode.
cd .; \
/usr/GNUstep/System/Library/Makefiles/mkinstalldirs ./obj

I am not certain why this is an error. There are some older scripts which set this, but it ultimately may not be used. What is the harm in making it a warning?

Gorm build broken on Windows with current version of gnustep-make

I believe this is due a recent change in gnustep-make. Building Gorm fails in the following way:

Compiling file MenusPalette.m ...
Compiling file inspectors.m ...
Linking palette 0Menus ...
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:358: undefined reference to __imp_IBMenuPboardType' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:448: undefined reference to __imp_IBMenuPboardType'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:502: undefined reference to findAllSubmenus' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:540: undefined reference to __imp_IBMenuPboardType'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o: in function -[GormMenuEditor draggingEntered:]': C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:542: undefined reference to __imp_IBMenuPboardType'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:557: undefined reference to __imp_IBMenuPboardType' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:656: undefined reference to __imp_IBMenuPboardType'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:738: undefined reference to __imp_IBMenuPboardType' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormMenuEditor.m:758: more undefined references to __imp_IBMenuPboardType' follow
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuEditor.m.o:GormMenuEditor.m:(.rdata$.refptr.GormLinkPboardType[.refptr.GormLinkPboardType]+0x0): undefined reference to GormLinkPboardType' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormNSMenu.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormNSMenu.m:124: undefined reference to __imp_IBSelectionChangedNotification'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormNSMenu.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/GormNSMenu.m:209: undefined reference to __imp_IBSelectionChangedNotification' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuItemAttributesInspector.m.o:GormMenuItemAttributesInspector.m:(.data+0xde0): undefined reference to __objc_class_name_IBInspector'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/GormMenuAttributesInspector.m.o:GormMenuAttributesInspector.m:(.data+0xb78): undefined reference to __objc_class_name_IBInspector' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/MenusPalette.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/MenusPalette.m:118: undefined reference to __imp_IBMenuPboardType'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/MenusPalette.m.o: in function -[MenusPalette finishInstantiate]': C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/MenusPalette.m:161: undefined reference to __imp_IBMenuPboardType'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/MenusPalette.m:218: undefined reference to __imp_IBMenuPboardType' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/MenusPalette.m:260: undefined reference to __imp_IBMenuPboardType'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/MenusPalette.m:302: undefined reference to __imp_IBMenuPboardType' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/MenusPalette.m.o:C:\msys64\home\gregc\gnustep\apps-gorm\Palettes\0Menus/MenusPalette.m:345: more undefined references to __imp_IBMenuPboardType' follow
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ./obj/0Menus.obj/MenusPalette.m.o:MenusPalette.m:(.data+0x1d50): undefined reference to `__objc_class_name_IBPalette'
collect2.exe: error: ld returned 1 exit status
make[5]: *** [/usr/GNUstep/System/Library/Makefiles/Instance/palette.make:141: 0Menus.palette/./0Menus.dll] Error 1
make[4]: *** [/usr/GNUstep/System/Library/Makefiles/Instance/palette.make:125: internal-palette-run-compile-submake] Error 2
make[3]: *** [/usr/GNUstep/System/Library/Makefiles/Master/rules.make:297: 0Menus.all.palette.variables] Error 2
make[2]: *** [/usr/GNUstep/System/Library/Makefiles/Master/palette.make:38: internal-all] Error 2
make[1]: *** [/usr/GNUstep/System/Library/Makefiles/Master/serial-subdirectories.make:53: internal-all] Error 2
make: *** [/usr/GNUstep/System/Library/Makefiles/Master/serial-subdirectories.make:53: internal-all] Error 2

gregc@mother-vm-win MINGW64 ~/gnustep/apps-gorm
$

The javah command was deprecated in java8...

We use it in the following places...

./Documentation/gnustep-make.texi:271:which @code{javah} should produce header files for integration with 
./messages.make:47:  ECHO_JAVAHING  = @(echo " Running javah on $< ...";
./common.make:850:  JAVAH = $(JAVA_HOME)/bin/javah
./rules.make:661:#	javah -o gnu/gnustep/base/NSObject.h gnu.gnustep.base.NSObject
./ChangeLog.1:5125:	* common.make (JAVAH): Set it to 'javah' if null.

As a result, none of the java based libraries in GNUstep build with a recent version of the JRE/JDK. The replacement for this is the command javac -h GC

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.