FreeCalypso > hg > fc-magnetite
annotate scripts/ti/make_cmd.pl @ 581:a0a45c5eb3ef
gsmcomp.c: bumping trace partition size to 220 like in gprscomp.c
This change is safe in terms of RAM usage because all of these partition
pools have already been moved from XRAM to IRAM earlier, and our IRAM
usage in VO configs is currently quite low - the one near the limit
is XRAM on C11x.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 29 Jan 2019 03:52:49 +0000 |
parents | b67077cf6b1b |
children |
rev | line source |
---|---|
59
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 #!perl |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 # generate a dynamic Linker command file |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 # PARAMETER ARE: |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 # 0 : Name of the file with the parameters |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 # 1 : Name of the Linker command file (output) |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 # 2 : value of the TOOL_CHOICE variable |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 # 3 : Name of the Linker command file template |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 # 4 - (n-1) : Name of the libraries |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #$argcount = @ARGV; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 my $lnk_opt_file=$ARGV[0]; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 my $cmd_file=$ARGV[1]; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 my $toolchoice_type = $ARGV[2]; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 my $cmd_file_temp=$ARGV[3]; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 my %section; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 open (TMP,$lnk_opt_file)||die "can't open file\n"; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 # parse the parameter file and construct replacement strings |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 # |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 # the file contains entries of the following form |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 # (BSS_LIBS (.bss)) |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 # or |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 # (BSS_LIBS (.bss) CONST_LIBS (.text, .const)) |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 # or |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 # (BSS_LIBS (.bss)) (BSS_LIBS (.bss) CONST_LIBS (.text, .const)) |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 # |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 # the syntax is as follows, white space and line breaks are not significant |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 # <ENTRY> := <lp> <PAIR><lp> |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 # <PAIR> := <name> <SECTION> |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 # <SECTION> := <lp><free_text><lp> |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 # <lp> := ( |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 # <rp> := ) |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 # <name> := [A-Za-z_]+ |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 # <free_text> := [^()]+ |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 # |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 # each entry will be linked with one library passed on the command line |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 my $line; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 my $count; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 while ($line=<TMP>) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 # find <ENTRY> |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 while ($line =~ /\((\s*\w+\s*\([^\(\)]+\))+\)/) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 $line = $'; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 $match = $&; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 # find <PAIR> |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 while ($match =~ /\s*(\w+)\s*(\([^\(\)]+\))/ ) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 $match = $'; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 $section{"$1"} .= "$ARGV[$count+4] $2\n"; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 $count++; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 open (TMP1, ">$cmd_file"); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 open (TMP,$cmd_file_temp); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 while ($line=<TMP>) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 my $replaced = 0; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 foreach $key (keys(%section)) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 if ($line =~ /\($key\)/g) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 # insert the Libs |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 $line = $section{$key}; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 $replaced = 1; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 # NEW COMPILER MANAGEMENT |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 # If use of VISUAL LINKER, needs to manage trampoline download. |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 # Case of: |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 # - TOOL_CHOICE == 0 => compiler v1.22e with vlinker v1.9902 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 # - TOOL_CHOICE == 3 => compiler & linker v2.54 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 if ($toolchoice_type == 0) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 $line =~ s(COMMENT1START)(/*); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 $line =~ s(COMMENT1END)(*/); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 $line =~ s(COMMENT2START)(); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 $line =~ s(COMMENT2END)(); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 } else { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 $line =~ s(COMMENT1START)(); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 $line =~ s(COMMENT1END)(); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 $line =~ s(COMMENT2START)(/*); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 $line =~ s(COMMENT2END)(*/); |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 if ($replaced || !($line =~ /^\s*\$\(\s*\w+\s*\)\s*$/ )) { |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 print TMP1 $line; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 } |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 close TMP; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 close TMP1; |
b67077cf6b1b
scripts/ti/make_cmd.pl imported from TI's BuSyB
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 unlink $tmp_file; |