123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- diff --git a/media/libtheora/lib/arm/arm2gnu.pl b/media/libtheora/lib/arm/arm2gnu.pl
- --- a/media/libtheora/lib/arm/arm2gnu.pl
- +++ b/media/libtheora/lib/arm/arm2gnu.pl
- @@ -1,11 +1,14 @@
- #!/usr/bin/perl
-
- my $bigend; # little/big endian
- +my $nxstack;
- +
- +$nxstack = 0;
-
- eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
- if $running_under_some_shell;
-
- while ($ARGV[0] =~ /^-/) {
- $_ = shift;
- last if /^--/;
- if (/^-n/) {
- @@ -77,16 +80,19 @@ while (<>) {
- if ( /\bMEND\b/ ) {
- s/\bMEND\b/.endm/;
- $n=0;
- }
-
- # ".rdata" doesn't work in 'as' version 2.13.2, as it is ".rodata" there.
- #
- if ( /\bAREA\b/ ) {
- + if ( /CODE/ ) {
- + $nxstack = 1;
- + }
- s/^(.+)CODE(.+)READONLY(.*)/ .text/;
- s/^(.+)DATA(.+)READONLY(.*)/ .section .rdata\n .align 2/;
- s/^(.+)\|\|\.data\|\|(.+)/ .data\n .align 2/;
- s/^(.+)\|\|\.bss\|\|(.+)/ .bss/;
- }
-
- s/\|\|\.constdata\$(\d+)\|\|/.L_CONST$1/; # ||.constdata$3||
- s/\|\|\.bss\$(\d+)\|\|/.L_BSS$1/; # ||.bss$2||
- @@ -263,9 +269,13 @@ while (<>) {
- } continue {
- printf ("%s", $_) if $printit;
- if ($addPadding != 0)
- {
- printf (" mov r0,r0\n");
- $addPadding = 0;
- }
- }
- -
- +#If we had a code section, mark that this object doesn't need an executable
- +# stack.
- +if ($nxstack) {
- + printf (" .section\t.note.GNU-stack,\"\",\%\%progbits\n");
- +}
|