forked from KolibriOS/kolibrios
[clink] Update to revision ed897ae9c5dd7e13444aad65506698a34802a69e
- Allow to set output file name git-svn-id: svn://kolibrios.org@9080 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
5ed7924e95
commit
2976cecf4e
@ -164,8 +164,8 @@ static void add_name_to_set(char *sym_name, char ***set) {
|
|||||||
cvec_pchar_push_back(set, sym_name);
|
cvec_pchar_push_back(set, sym_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void build(ObjectIr *ir) {
|
static void build(ObjectIr *ir, const char *outname) {
|
||||||
FILE *out = fopen("a.out.obj", "wb");
|
FILE *out = fopen(outname, "wb");
|
||||||
char *strtab = cvec_char_new(1024);
|
char *strtab = cvec_char_new(1024);
|
||||||
size_t size_of_sections = 0;
|
size_t size_of_sections = 0;
|
||||||
size_t number_of_relocations = 0;
|
size_t number_of_relocations = 0;
|
||||||
@ -624,8 +624,30 @@ static ObjectIr parse_objects(int argc, char **argv) {
|
|||||||
return ir;
|
return ir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int first_arg(int argc, char **argv, const char *arg) {
|
||||||
|
return argc >= 2 && !strcmp(argv[1], arg);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
ObjectIr ir = parse_objects(argc, argv);
|
const char *outname = "a.out.obj";
|
||||||
build(&ir);
|
|
||||||
|
if (argc >= 3 && !strcmp(argv[1], "-o")) {
|
||||||
|
outname = argv[2];
|
||||||
|
argv += 2;
|
||||||
|
argc -= 2;
|
||||||
|
} else if (first_arg(argc, argv, "-h")
|
||||||
|
|| first_arg(argc, argv, "-help")
|
||||||
|
|| first_arg(argc, argv, "--help")
|
||||||
|
|| argc == 1) {
|
||||||
|
printf("Usage cases:\n");
|
||||||
|
printf(" %s [-o outname] object files list\n", argv[0]);
|
||||||
|
printf(" Link COFF files into one, optionally set name of output\n");
|
||||||
|
printf(" %s [-h|-help|--help]\n", argv[0]);
|
||||||
|
printf(" Output this help\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ObjectIr ir = parse_objects(argc, argv);
|
||||||
|
build(&ir, outname);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user