GHC cc phase doesn't add -framework-path flags
When compiling a C file with ghc, framework search paths (-framework-path) are not passed to gcc. For example, compiling the test file rl.c with GNUreadline.framework stored in $HOME/Library/Frameworks:
$ cat rl.c
#include <stdio.h>
#include <GNUreadline/readline/readline.h>
int main(void) {
char *line = readline("Enter a line: ");
if (line) printf("Line was:%s\n",line);
return 0;
}
$ gcc -F$HOME/Library/Frameworks -framework GNUreadline rl.c
$ ghc -framework-path $HOME/Library/Frameworks -framework GNUreadline rl.c
rl.c:2:43:
error: GNUreadline/readline/readline.h: No such file or directory
rl.c: In function 'main':
rl.c:5:0: warning: implicit declaration of function 'readline'
rl.c:5:0:
warning: initialization makes pointer from integer without a cast
This bug was found by Christian Maeder when creating a potential fix for #1395 (closed). Discussion in that task is revolving around making GHC add $HOME/Library/Frameworks automatically; but regardless of that task's resolution, we should fix the above behavior.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.8.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | low |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | Multiple |