Comments (7)
Also, without this "fix", compilation of MaxIDE "work", but it's not runnable as in getting coredumps.
Happens on clean install of ubuntu 18.04 (or newer). Linux Mint 19 (based of ubuntu 18.04)
Installed Ubuntu/Mint in a VM, updated. downloaded latest release v0.99.3.31.
Recompiled modules, recompiled maxide. Try to run the new binary, coredump.
from bmk.
There are repercussions to turning on this functionality. For example, any static libraries (like wxMax) would need to be built specifically with this option in order to be able to link against the application.
I got -pie -fpie
working with a CC option of -fpie
too, so I think I'll go with that. I've only tested some basic apps and MaxIDE so far, but it seems to be okay.
I think I'll enable it by default, but have a command-line option to disable it (-no-pie
), just in case. And probably then another option in MaxIDE...
from bmk.
Great, thanks Brucey. Yes static libraries would be too much trouble to recompile especially wxMax, glad you got it working with a CC option, seems like the way to go.
from bmk.
There are repercussions to turning on this functionality. For example, any static libraries (like wxMax) would need to be built specifically with this option in order to be able to link against the application.
I got
-pie -fpie
working with a CC option of-fpie
too, so I think I'll go with that. I've only tested some basic apps and MaxIDE so far, but it seems to be okay.I think I'll enable it by default, but have a command-line option to disable it (
-no-pie
), just in case. And probably then another option in MaxIDE...
Where to put the option to - is this an "developer option" ?
from bmk.
The actual issue with double-clicking a PIE executable in a file manager is to do with the file manager itself, not the fact that the binary has been compiled with -fpie etc.
The Nautilus developers (for example) seem to expect a UI application to be installed and have a .desktop
file which the file manager would use to indicate that the application needed to run when double-clicked.
from bmk.
from bmk.
@ no-pie option
I asked where we should put this "Use -pie" (or how to call it) option to. I would create a commit/Pull Request then but am not sure how to name it - and where to put it. Maybe there is even a system call we could use to check if we should check that option or not (kind of a "version check") ?
from bmk.
Related Issues (20)
- [Windows] Incbin.h not found on 64bit compilation HOT 3
- Modules compiled each time ... HOT 3
- Relative blitz.mod/incbin url usage
- [Win32] Debug builds with GDB information are stripped HOT 2
- Add param to generate separate symbols file HOT 1
- Help me compiling Bmk on mac HOT 1
- Framework commands in import files not leading to warnings/errors
- BMK without params - showing help but also "command line error"
- How to append linker options? HOT 5
- Bmk 'no such file' error HOT 4
- when using later mingw versions such as TDM-GCC 10.3.0, GCCVersion returns cpu count only.
- Files missing during compilation HOT 6
- Compilation problem
- Conversion from BlitzBasic (language) to BlitzMax not implemented
- Debugbuild to crashlog HOT 3
- AssembleNative: incorrect file ending (capital S) - but not handled anyways
- Dll's created in Bmax can only be used in Bmax. (missing static lib)
- "' @bmk"-pragma ignored in application main source file HOT 2
- Conditional option ?GUI/Console/Shared possible?
- bmk doesn't take configured options into account when preforming some actions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bmk.