Hi Marc,

> On 23 Jul 2021, at 08:30, Marc <m...@mh-sec.de> wrote:
> 
> Thank you so far, this got me (unsurprisingly) one step further, but
> then the external function resolve error is moved to the library loading
> stage:
> 
> ~/afl++ $ g++-11 -Wl,-flat_namespace -Wl,-undefined,dynamic_lookup -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
> 

> (on the other hand it is the same on Linux, I cannot find a library that
> actually supplies that function.

$ grep -rH opt_pass::set_pass_param gcc/*.c
gcc/passes.c:opt_pass::set_pass_param (unsigned int, bool)

it’s a virtual function with a default impl that prints:

  internal_error ("pass %s needs a %<set_pass_param%> implementation "
                  "to handle the extra argument in %<NEXT_PASS%>", name);

so… do you have an implementation in your pass?

Otherwise are you sure that your f951 is being built with -export_dynamic ?

(I think if it was you should have seen the error above if/when you tried to 
call the function - but OTOH, not at load-time, I guess)

Iain

Reply via email to