From 4a822714510711f7ca16a57b6db7002685f0c366 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 24 Oct 2001 19:52:41 +0000 Subject: [PATCH] Add support for building a runtime library for LLI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@983 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ExecutionEngine/Makefile | 12 ++++++++++++ tools/lli/Makefile | 12 ++++++++++++ tools/lli/RuntimeLib.lc | 25 +++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 tools/lli/RuntimeLib.lc diff --git a/lib/ExecutionEngine/Makefile b/lib/ExecutionEngine/Makefile index bc5578c0a23..b1b936d3bf0 100644 --- a/lib/ExecutionEngine/Makefile +++ b/lib/ExecutionEngine/Makefile @@ -5,3 +5,15 @@ TOOLLINKOPTS = -ldl include $(LEVEL)/Makefile.common +all :: $(LEVEL)/tools/Debug/RuntimeLib.bc + +Debug/RuntimeLib.c: RuntimeLib.lc + cp -f $< $@ + +Debug/RuntimeLib.o: Debug/RuntimeLib.c + /home/vadve/lattner/cvs/gcc_install/bin/gcc $< -c -o $@ + +$(LEVEL)/tools/Debug/RuntimeLib.bc: Debug/RuntimeLib.o + opt -dce $< -o $@ -f -q + + diff --git a/tools/lli/Makefile b/tools/lli/Makefile index bc5578c0a23..b1b936d3bf0 100644 --- a/tools/lli/Makefile +++ b/tools/lli/Makefile @@ -5,3 +5,15 @@ TOOLLINKOPTS = -ldl include $(LEVEL)/Makefile.common +all :: $(LEVEL)/tools/Debug/RuntimeLib.bc + +Debug/RuntimeLib.c: RuntimeLib.lc + cp -f $< $@ + +Debug/RuntimeLib.o: Debug/RuntimeLib.c + /home/vadve/lattner/cvs/gcc_install/bin/gcc $< -c -o $@ + +$(LEVEL)/tools/Debug/RuntimeLib.bc: Debug/RuntimeLib.o + opt -dce $< -o $@ -f -q + + diff --git a/tools/lli/RuntimeLib.lc b/tools/lli/RuntimeLib.lc new file mode 100644 index 00000000000..38b28bfab19 --- /dev/null +++ b/tools/lli/RuntimeLib.lc @@ -0,0 +1,25 @@ +//===-- RuntimeLib.lc - LLVM Standard C Runtime Library -----------*- C -*-===// +// +// This file contains definitions of C functions that are useful to get LLVM +// programs up and running. This library of functions is automatically linked +// into programs loaded into LLI. +// +// This file is compiled by the LLVM port of GCC to get LLVM code. +// +//===----------------------------------------------------------------------===// + +// Prototypes for functions exported by LLI directly. +void exit(int Code); +int putchar(int); + +// The puts() function writes the string pointed to by s, followed by a +// NEWLINE character, to the standard output stream stdout. On success the +// number of characters written is returned; otherwise they return EOF. +// +int puts(const char *S) { + const char *Str = S; + while (*Str) putchar(*Str++); + putchar('\n'); + return Str+1-S; +} + -- 2.34.1