tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: odd fonts/t1lib compile mystery on osx

On Fri, Jan 04, 2019 at 10:41:48PM +0000, wrote:
> abort is a standard C function, using the standard name is playing
> chicken with the optimizer.
> -fno-builtin sounds good
> (-fno-builtin-abort also a thing)

ah, so that t1lib code is a bit shady on its version of abort.
it does this:

lib/type1/objects.h:#define   abort(line,no)       t1_abort(line,no)

so, in theory that macro should rename all abort(line,no) calls
into t1_abort() and thus not conflict with the posix abort() call.

I didn't put it in the other message, but I also tried this:

 - change all 8 calls to abort(line,no) in objects.c to xabort(line,no)

 - tried this macro:

     #define xabort(A,B) do { fprintf(stderr, "ABORT!\n"); exit(1); } while (0)

   and the program still crashed.   if I changed it to:

     #define xabort(A,B) do { fprintf(stderr, "ABORT!\n"); } while (0)

   then it did not crash (or print "ABORT!\n").

I think that test gets abort() out of the way, since the xabort
macro expands to not call any abort function.   but if the xabort
macro ends in a call that is __dead2 ... then it crashes too.


Home | Main Index | Thread Index | Old Index