Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not compatible with LLVM 3.6 #1

Open
PerMildner opened this issue Apr 20, 2015 · 1 comment
Open

Not compatible with LLVM 3.6 #1

PerMildner opened this issue Apr 20, 2015 · 1 comment

Comments

@PerMildner
Copy link

The code uses the old JIT. Only MCJIT seems to be available in more recent versions of LLVM.

This prevents the code from compiling.

@QuestionPython
Copy link

hi, after make say error:

$ make
mkdir -p build
mkdir -p build/bison
yacc -dv -o src/parser.c src/parser.y
lex --header-file=src/lexer.h -o src/lexer.c src/lexer.l
cc llvm-config --cflags -g -Wall -Wextra -Wno-self-assign -std=c99 -c -o src/kaleidoscope.o src/kaleidoscope.c
In file included from src/kaleidoscope.c:8:0:
src/ast.h:87:6: warning: ISO C99 doesn’t support unnamed structs/unions [-Wpedantic]
};
^
In file included from src/codegen.h:4:0,
from src/kaleidoscope.c:10:
/usr/lib/llvm-3.8/include/llvm-c/Core.h:83:23: warning: enumerator value for ‘LLVMNonLazyBind’ is not an integer constant expression [-Wpedantic]
LLVMNonLazyBind = 1 << 31
^
src/kaleidoscope.c: In function ‘main’:
src/kaleidoscope.c:25:5: warning: implicit declaration of function ‘LLVMLinkInJIT’ [-Wimplicit-function-declaration]
LLVMLinkInJIT();
^~~~~~~~~~~~~
src/kaleidoscope.c:75:64: warning: passing argument 1 of ‘kal_ast_prototype_create’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
kal_ast_node *prototype = kal_ast_prototype_create("", NULL, 0);
^~
In file included from src/kaleidoscope.c:8:0:
src/ast.h:108:15: note: expected ‘char *’ but argument is of type ‘const char *’
kal_ast_node *kal_ast_prototype_create(char name, char args,
^~~~~~~~~~~~~~~~~~~~~~~~
src/kaleidoscope.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
cc llvm-config --cflags -g -Wall -Wextra -Wno-self-assign -std=c99 -c -o src/codegen.o src/codegen.c
In file included from src/codegen.c:4:0:
/usr/lib/llvm-3.8/include/llvm-c/Core.h:83:23: warning: enumerator value for ‘LLVMNonLazyBind’ is not an integer constant expression [-Wpedantic]
LLVMNonLazyBind = 1 << 31
^
In file included from src/codegen.h:5:0,
from src/codegen.c:7:
src/ast.h:87:6: warning: ISO C99 doesn’t support unnamed structs/unions [-Wpedantic]
};
^
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
cc -g -Wall -Wextra -Wno-self-assign -std=c99 -c -o src/ast.o src/ast.c
src/ast.c: In function ‘kal_ast_variable_create’:
src/ast.c:44:27: warning: implicit declaration of function ‘strdup’ [-Wimplicit-function-declaration]
node->variable.name = strdup(name);
^~~~~~
src/ast.c:44:25: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
node->variable.name = strdup(name);
^
src/ast.c: In function ‘kal_ast_call_create’:
src/ast.c:89:21: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
node->call.name = strdup(name);
^
src/ast.c: In function ‘kal_ast_prototype_create’:
src/ast.c:118:26: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
node->prototype.name = strdup(name);
^
src/ast.c:123:33: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
node->prototype.args[i] = strdup(args[i]);
^
src/ast.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
cc -g -Wall -Wextra -Wno-self-assign -std=c99 -c -o src/lexer.o src/lexer.c
src/lexer.l: In function ‘yylex’:
src/lexer.l:4:38: warning: implicit declaration of function ‘strndup’ [-Wimplicit-function-declaration]
#define SAVE_STRING yylval->string = strndup(yytext, yyleng)
^
src/lexer.l:22:1: note: in expansion of macro ‘SAVE_STRING’
[a-zA-Z_][a-zA-Z0-9_]
SAVE_STRING; return TIDENTIFIER;
^~~~~~~~~~~
src/lexer.l:4:36: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
#define SAVE_STRING yylval->string = strndup(yytext, yyleng)
^
src/lexer.l:22:1: note: in expansion of macro ‘SAVE_STRING’
[a-zA-Z_][a-zA-Z0-9_]
SAVE_STRING; return TIDENTIFIER;
^~~~~~~~~~~
src/lexer.c: In function ‘yy_get_next_buffer’:
src/lexer.c:627:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( n = 0; n < max_size &&
^
src/lexer.c:1168:3: note: in expansion of macro ‘YY_INPUT’
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
^~~~~~~~
src/lexer.c: In function ‘yy_init_buffer’:
src/lexer.c:1525:48: warning: implicit declaration of function ‘fileno’ [-Wimplicit-function-declaration]
b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
^~~~~~
src/lexer.c: In function ‘yy_scan_bytes’:
src/lexer.c:1728:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( i = 0; i < _yybytes_len; ++i )
^
At top level:
src/lexer.c:1316:16: warning: ‘input’ defined but not used [-Wunused-function]
static int input (yyscan_t yyscanner)
^~~~~
src/lexer.c:1272:17: warning: ‘yyunput’ defined but not used [-Wunused-function]
static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
^~~~~~~
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
cc -g -Wall -Wextra -Wno-self-assign -std=c99 -c -o src/parser.o src/parser.c
src/parser.y: In function ‘yyerror’:
src/parser.y:8:24: warning: unused parameter ‘scanner’ [-Wunused-parameter]
void yyerror(void scanner, const char s) { printf("ERROR: %s\n", s); }
^~~~~~~
src/parser.y: In function ‘yyparse’:
src/parser.y:81:115: warning: implicit declaration of function ‘strdup’ [-Wimplicit-function-declaration]
| TIDENTIFIER { $$.count = 1; $$.args = malloc(sizeof(char
)); $$.args[0] = strdup($1); }
^
src/parser.y:81:113: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
| TIDENTIFIER { $$.count = 1; $$.args = malloc(sizeof(char
)); $$.args[0] = strdup($1); }
^
src/parser.y:82:213: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
| proto_args TCOMMA TIDENTIFIER { $1.count++; $1.args = realloc($1.args, sizeof(char
) * $1.count); $1.args[$1.count-1] = strdup($3); $$ = $1; }
^
src/parser.y: At top level:
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
rm -f build/libkaleidoscope.a
ar rcs build/libkaleidoscope.a src/kaleidoscope.o src/codegen.o src/ast.o src/lexer.o src/parser.o
ranlib build/libkaleidoscope.a
g++ llvm-config --libs --cflags --ldflags core analysis executionengine jit interpreter native -g -Wall -Wextra -Wno-self-assign -rdynamic -Isrc -o build/kaleidoscope src/kaleidoscope.o build/libkaleidoscope.a
llvm-config: unknown component name: jit
src/kaleidoscope.o: In function main': /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:20: undefined reference to LLVMModuleCreateWithName'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:21: undefined reference to LLVMCreateBuilder' src/kaleidoscope.o: In function LLVMInitializeNativeTarget':
/usr/lib/llvm-3.8/include/llvm-c/Target.h:139: undefined reference to LLVMInitializeX86TargetInfo' /usr/lib/llvm-3.8/include/llvm-c/Target.h:140: undefined reference to LLVMInitializeX86Target'
/usr/lib/llvm-3.8/include/llvm-c/Target.h:141: undefined reference to LLVMInitializeX86TargetMC' src/kaleidoscope.o: In function main':
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:25: undefined reference to LLVMLinkInJIT' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:29: undefined reference to LLVMCreateExecutionEngineForModule'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:36: undefined reference to LLVMCreateFunctionPassManagerForModule' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:37: undefined reference to LLVMGetExecutionEngineTargetData'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:37: undefined reference to LLVMAddTargetData' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:38: undefined reference to LLVMAddPromoteMemoryToRegisterPass'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:39: undefined reference to LLVMAddInstructionCombiningPass' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:40: undefined reference to LLVMAddReassociatePass'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:41: undefined reference to LLVMAddGVNPass' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:42: undefined reference to LLVMAddCFGSimplificationPass'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:43: undefined reference to LLVMInitializeFunctionPassManager' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:87: undefined reference to LLVMDumpValue'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:91: undefined reference to LLVMGetPointerToGlobal' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:87: undefined reference to LLVMDumpValue'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:97: undefined reference to LLVMRunFunctionPassManager' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:105: undefined reference to LLVMDumpModule'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:107: undefined reference to LLVMDisposePassManager' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:108: undefined reference to LLVMDisposeBuilder'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:109: undefined reference to LLVMDisposeModule' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/kaleidoscope.c:31: undefined reference to LLVMDisposeMessage'
build/libkaleidoscope.a(codegen.o): In function kal_codegen_number': /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:36: undefined reference to LLVMDoubleType'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:36: undefined reference to LLVMConstReal' build/libkaleidoscope.a(codegen.o): In function kal_codegen_prototype':
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:163: undefined reference to LLVMGetNamedFunction' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:166: undefined reference to LLVMCountParams'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:172: undefined reference to LLVMCountBasicBlocks' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:195: undefined reference to LLVMGetParam'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:196: undefined reference to LLVMSetValueName' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:182: undefined reference to LLVMDoubleType'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:186: undefined reference to LLVMDoubleType' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:186: undefined reference to LLVMFunctionType'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:189: undefined reference to LLVMAddFunction' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:190: undefined reference to LLVMSetLinkage'
build/libkaleidoscope.a(codegen.o): In function kal_codegen_binary_expr': /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:97: undefined reference to LLVMBuildFDiv'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:94: undefined reference to LLVMBuildFMul' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:88: undefined reference to LLVMBuildFAdd'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:91: undefined reference to LLVMBuildFSub' build/libkaleidoscope.a(codegen.o): In function kal_codegen_call':
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:118: undefined reference to LLVMGetNamedFunction' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:126: undefined reference to LLVMCountParams'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:144: undefined reference to LLVMBuildCall' build/libkaleidoscope.a(codegen.o): In function kal_codegen_function':
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:229: undefined reference to LLVMAppendBasicBlock' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:230: undefined reference to LLVMPositionBuilderAtEnd'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:240: undefined reference to LLVMBuildRet' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:243: undefined reference to LLVMVerifyFunction'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:245: undefined reference to LLVMDeleteFunction' build/libkaleidoscope.a(codegen.o): In function kal_codegen_if_expr':
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:272: undefined reference to LLVMDoubleType' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:272: undefined reference to LLVMConstReal'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:273: undefined reference to LLVMBuildFCmp' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:276: undefined reference to LLVMGetInsertBlock'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:276: undefined reference to LLVMGetBasicBlockParent' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:279: undefined reference to LLVMAppendBasicBlock'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:280: undefined reference to LLVMAppendBasicBlock' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:281: undefined reference to LLVMAppendBasicBlock'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:283: undefined reference to LLVMBuildCondBr' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:286: undefined reference to LLVMPositionBuilderAtEnd'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:292: undefined reference to LLVMBuildBr' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:293: undefined reference to LLVMGetInsertBlock'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:295: undefined reference to LLVMPositionBuilderAtEnd' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:300: undefined reference to LLVMBuildBr'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:301: undefined reference to LLVMGetInsertBlock' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:303: undefined reference to LLVMPositionBuilderAtEnd'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:304: undefined reference to LLVMDoubleType' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:304: undefined reference to LLVMBuildPhi'
/home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:305: undefined reference to LLVMAddIncoming' /home/guest/Project/learn/1/llvm-c-kaleidoscope-master/src/codegen.c:306: undefined reference to LLVMAddIncoming'
collect2: error: ld returned 1 exit status
Makefile:50: recipe for target 'build/kaleidoscope' failed
make: *** [build/kaleidoscope] Error 1
guest@system:~/Project/learn/1/llvm-c-kaleidoscope-master$

please check and fix this.
👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants