Re: [Tack-devel] ACK compiles on NetBSD-macppc, sort of...
Moved to https://github.com/davidgiven/ack
Brought to you by:
dtrg
From: Perry E. M. <pe...@pi...> - 2006-07-21 13:52:26
|
"Gregory T. (tim) Kelly" <gt...@di...> writes: > At 9:07 AM -0400 7/21/06, Perry E. Metzger wrote: >>> And it might well be an interesting part of the code. The >>> conditional failing is #ifdef __lint__. >> >>I don't think you understood what your read. > > Ok, I understood the chain of events to be GNUC was not defined and > neither was __lint__, thereby coming to "No function renaming > possible." Correct. We're not running something GCC compatible, and we're not running lint, so there is no implemented version of the symbol renaming macros. If you implemented enough of the GCC stuff to do symbol renaming, you could lie and define __GNUC__. Really, though, that is only safe if you define all the gcc extensions. However, if ACK handled renaming, it would be fine to edit the include file to say __GNUC__ or __ACK__ or something similar. The core of the problem here is that you need to do what GCC does, which is allow assembly of directives that alter the underlying symbols. You also need ELF and other things, of course. > However, upon further review, you quite correct. I misunderstood the compiler message: > > SUF: not found > SUF: not found > SUF: not found > SUF: not found > SUF: not found > "/usr/include/sys/cdefs.h", line 245: error: unknown control > > apparently it is not the path that is the problem but the control > "#error" that is the problem. Well, the #error is there to tell you that you're trying to use a compiler that won't work because there is no symbol renaming macro defined. The fact that ACK doesn't implement #error as "print error and exit" is kind of a secondary issue, since #error will do the right thing even when it isn't correctly implemented. :) Perry |