It's pretty old code and I assume it was simply copied from compiler output. I write "assume" because it was contributed. It might have been bug/feature in early gcc. One can see .size 24 in gcc-4.8.1/gcc/config/rs6000/rs6000.c, which is now guarded by "if (DOT_SYMBOLS)", where DOT_SYMBOLS appears to be true if you pass -mcall-aixdesc. "aixdesc" might have been default...

The size field in the function descriptor actually refers
to the function size not the size of the function descriptor.

Remove it, otherwise all functions created with this macro
end up having length 24:

   Num:    Value          Size Type    Bind   Vis      Ndx Name
  1094: 000000000025bd38    24 FUNC    GLOBAL DEFAULT   20 AES_encrypt
  2565: 000000000025bd50    24 FUNC    GLOBAL DEFAULT   20 AES_decrypt

--

diff --git a/crypto/perlasm/ppc-xlate.pl b/crypto/perlasm/ppc-xlate.pl
index a3edd98..704983b 100755
--- a/crypto/perlasm/ppc-xlate.pl
+++ b/crypto/perlasm/ppc-xlate.pl
@@ -37,7 +37,6 @@ my $globl = sub {
                                $ret .= ".align    3\n";
                                $ret .= "$name:\n";
                                $ret .= ".quad     .$name,.TOC.\@tocbase,0\n";
-                               $ret .= ".size     $name,24\n";
                                $ret .= ".previous\n";

Well, just omitting the .size doesn't make much sense. I mean if you omit it, then size would be 0, which would be hardly more useful/helpful than 24, wouldn't it? http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=d6019e165497962a0751469441c680aa17349668
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to