From 47abdbd3d52a0bf92e907c3e059b5136c140fec2 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Tue, 30 Mar 2010 09:45:31 +0200 Subject: Better handle ld scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * search file from INPUT and GROUP commands in the library path in addition to the current directory * handle libraries specified by -lfoo options * Search lib in GROUP command repeatedly --- tccpp.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tccpp.c') diff --git a/tccpp.c b/tccpp.c index 51348cf..f974242 100644 --- a/tccpp.c +++ b/tccpp.c @@ -378,6 +378,27 @@ static int tcc_peekc_slow(BufferedFile *bf) } } +BufferedFile *tcc_save_buffer_state(int *offset) +{ + BufferedFile *state; + + state = tcc_malloc(sizeof(BufferedFile)); + memcpy(state, file, sizeof(BufferedFile)); + *offset = lseek(file->fd, 0, SEEK_CUR); + return state; +} + +void tcc_load_buffer_state(BufferedFile *buf_state, int offset) +{ + memcpy(file, buf_state, sizeof(BufferedFile)); + lseek(file->fd, offset, SEEK_SET); +} + +void tcc_free_buffer_state(BufferedFile *buf_state) +{ + tcc_free(buf_state); +} + /* return the current character, handling end of block if necessary (but not stray) */ ST_FUNC int handle_eob(void) -- cgit v1.3.1