Better handle ld scripts

* 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
This commit is contained in:
Thomas Preud'homme
2010-03-30 09:45:31 +02:00
parent 6d4166df61
commit 47abdbd3d5
3 changed files with 136 additions and 3 deletions

21
tccpp.c
View File

@ -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)