On Thu, Jul 22, 2021 at 4:18 PM Iain Sandoe via Gcc <gcc@gcc.gnu.org> wrote: > > > > > On 22 Jul 2021, at 20:41, Andrew Pinski via Gcc <gcc@gcc.gnu.org> wrote: > > > > On Thu, Jul 22, 2021 at 7:37 AM Marc <m...@mh-sec.de> wrote: > >> > > >> I have a gcc plugin (for afl++, > >> https://github.com/AFLplusplus/AFLplusplus) that works fine when > >> compiled on Linux but when compiled on MacOS (brew install gcc) it fails: > >> > >> ~/afl++ $ g++-11 -g -fPIC -std=c++11 > >> -I/usr/local/Cellar/gcc/11.1.0_1/lib/gcc/11/gcc/x86_64-apple-darwin20/11.1.0/plugin/include > >> -I/usr/local/Cellar/gcc/11.1.0_1/lib/gcc/11/gcc/x86_64-apple-darwin20/11.1.0/plugin > >> -I/usr/local//Cellar/gmp/6.2.1/include -shared > >> instrumentation/afl-gcc-pass.so.cc -o afl-gcc-pass.so > > > > A few things, You are not building the plugin with the correct options > > for darwin. > > Basically you need to allow undefined references > > -Wl, -undefined, dynamic_lookup > > but if you expect those to bind to the main exe (e.g. cc1plus) at runtime, > then you will need to build that with dynamic export. (-export_dynamic) > > These things will *not* transfer to arm64 macOS and they will probably > produce build warnings from newer linkers. > > === > > I suspect that we will need to find a different recipe for that case > (possibly using the main exe as a "link library" on the plugin link line, I > guess). > > > and then also use > > dylib as the extension. > > That’s a convention for shared libs but it won’t stop a plugin working (in > fact things like python use .so on macOS) > > for pluign modules, (e.g. Frameworks) even omitting the extension completely > has been done. > > (so this is not the source of the problem) > > > A few other things too. I always forgot the exact options to use on > > Darwin really. GNU libtool can help with that. > > perhaps, but I am not sure it’s maintained agressively .. so make sure to > check what you find is up to date. >
It's not even maintained at all, much less aggressively; the FSF has been looking for a maintainer for it for years, to no avail... > cheers, > Iain. >