-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Package request: bmake (BSD make) #5858
Comments
There is no need to support other Make flavours other than GNU Make. BSD Make does not support some automatic variables like GNU Make does, also most Makefiles are written with GNU Make in mind, and the Autotools do not generate BSD Make compliant files. There's also only a small list of packages, that are BSD based (only at MSYS2):
|
@StarWolf3000 I need bmake for #5859 Elf toolchain (elftc) requires bmake as make tool (instantly fail compilation with GNU make) |
And what do you need those tools for? They're of no use on Windows platforms (which is the target of MSYS2 and MINGW), Windows does not support ELF (and no, Windows Subsystem for Linux does not count). |
These tools (in this toolchain): libelf required to build dynamorio https://github.com/DynamoRIO/dynamorio/ |
See DynamoRIO/dynamorio#638 for details |
@StarWolf3000 So I really need BSD make in mingw32/mingw64 |
Then it's also your turn to build BSD Make yourself, and provide afterwards (if successful) a PKGBUILD for it, including a PR. As long as not multiple other people really need it or an existing package needs it, it will not be provided. Again, this is a project that's made available in the free time of most of us, especially @Alexpux. |
@StarWolf3000 Current status:
Mirror of sources there: https://github.com/ofry/bmake |
MINGW does not have a header named
|
@StarWolf3000 If I apply this patch to source code: https://gist.github.com/ofry/898f8e28e61c130314cbddb16fb5685a I got these errors:
Could you help me with this? In MSYS2 wiki I not found alternatives to these constants and functions. |
@StarWolf3000 I need 32 and 64 bit versions, so I should port it to mingw too. Could you help me with that? At least. where to dig with this? |
@StarWolf3000 : opening issues for requesting packages is perfectly ok on this project. As long as you don't demand a response, of course. @ofry : for what I can see on the issue you linked to, lack of BSD Make if the least of your concerns. That project (DynamoRIO) is so dependent on VS that extensive changes are required to its source code to make it compilable with MinGW. Apart that it is much more easy to adapt their CMake script than to port BSD Make to Windows just to use their alternative hand-made makefiles. So I suggest that you keep adapting the CMake scripts and then proceed to adapt the C/C++ source code. |
I tried to port bmake to MinGW. Result is in https://github.com/ofry/bmake/commits/port-20181221 At least, it compiles fine. Could anyone help me with PKGBUILD file? |
@oscarfv I need bmake not for DynamoRio itself. I need it because I need some dependencies (libelf, libelftc, libdwarf) available as MinGW libraries. And these dependencies require bmake to build it, so I can't create package with it. |
You could create cmake files for these projects and propose them upstream. The soft part of software really does mean something. |
I tried to create the bmake package with install: cannot change permissions of ‘/c/MyFiles/bmake/pkg/bmake/usr/share/man/cat1’: Permission denied
*** [beforeinstall] Error code 1
install: cannot change permissions of ‘/c/MyFiles/bmake/pkg/bmake/usr/share/mk’: Permission denied
*** [install-mk] Error code 1 Use the msys2 mode aka. the purple icon because |
@Biswa96 Thank you, will look into it. |
Current state:
|
GDB log:
|
@Biswa96 I making MinGW package, not MSYS2. So it should build in MinGW environment. Now I'm porting bmake package in MinGW. My code repo: https://github.com/ofry/bmake/commits/port-20181221 |
It may not be possible to "port" bmake to mingw because it uses posix function like fork etc. |
I know @oscarfv alread mentioned it, but you're better off with building it on Visual Studio, as most POSIX functionality isn't available on MINGW (and it will never be, it's not the goal of MINGW), and BSD Make and the toolchain you want to use (the mentioned libs) don't not serve any purpose on Windows (besides being unable to compile properly). |
@Biswa96 I think I already solved this. See the source code in my branch, I included such POSIX functions into it already. |
Then it should not segfault when invoking with no arguments given, which is clearly does (it did too on my end after compiling your code). |
@StarWolf3000 I already fixed that segfault. You should fetch latest commit :) Current state:
|
If that's the case, then you know what your next steps are:
|
@Biswa96 I made new commit in my branch. Now Cmd_Exec() function should work properly. But still need additional porting:
|
I made new commit in my branch. I add working regexp support, so variable assignment modifier Current state:
|
So this bug exists somewhere in signal handling. |
Which you probably will have to rewrite entirely, since Windows doesn't support signals. https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/signal?view=vs-2019 |
@StarWolf3000 : Windows does support some signals. Possibly you are confused by the first paragraph of that page, but that's for Windows Store apps, which are different beasts than your usual Windows program. @ofry : is it really necessary to report here every advancement or problem on your porting project? |
I fixed |
I did PR #6358, but it failing at testing stage. |
@ofry You need to tell |
Where are we need |
The build stopped because the linker could not resolve the symbol
|
Cannot view the Azure log due to browser problem, but it also happens on appveyor: https://ci.appveyor.com/project/Alexpux/mingw-packages/builds/32023107/job/37786505m0b649k9#L1078 |
Then it doesn't happen with Azure. But testing stage still failed. This is log from my machine: |
@StarWolf3000 Added libiconv dependency to PKGBUILD. |
It failing on test with this command:
/home/ofry/MINGW-packages/mingw-w64-bmake/src/bmake/Makefile doesn't exist. But exist /home/ofry/MINGW-packages/mingw-w64-bmake/src/bmake/makefile.in How I can create Makefile from this makefile.in:
|
I fixed Makefile detection, but testing still fails. log of build. Any ideas? |
Now this package presented in repo. Related PR: #6467 |
Source code: http://www.crufty.net/ftp/pub/sjg/
Are there any issues which prevent to port it?
The text was updated successfully, but these errors were encountered: