Skip to content
Snippets Groups Projects
Select Git revision
  • ffcdc8c6d2ea0730de2291f352571418a537a155
  • master default protected
  • hpke
  • ppc-chacha-4core
  • delete-internal-name-mangling
  • master-updates
  • ppc-gcm
  • ppc-chacha-2core
  • refactor-ecc-mod
  • ppc-chacha-core
  • use-mpn_cnd-functions
  • optimize-ecc-invert
  • default-m4-quote-char
  • power-asm-wip
  • test-fat
  • chacha-3core-neon
  • x86_64-salsa20-2core
  • salsa20-2core-neon
  • bcrypt
  • arm-salsa20-chacha-vsra
  • test-shlib-dir
  • nettle_3.6_release_20200429
  • nettle_3.6rc3
  • nettle_3.6rc2
  • nettle_3.6rc1
  • nettle_3.5.1_release_20190627
  • nettle_3.5_release_20190626
  • nettle_3.5rc1
  • nettle_3.4.1_release_20181204
  • nettle_3.4.1rc1
  • nettle_3.4_release_20171119
  • nettle_3.4rc2
  • nettle_3.4rc1
  • nettle_3.3_release_20161001
  • nettle_3.2_release_20160128
  • nettle_3.1.1_release_20150424
  • nettle_3.1_release_20150407
  • nettle_3.1rc3
  • nettle_3.1rc2
  • nettle_3.1rc1
  • nettle_3.0_release_20140607
41 results

list-obj-sizes.awk

Blame
  • Forked from Nettle / nettle
    Source project has a limited visibility.
    • Niels Möller's avatar
      7aef469f
      New function for decoding hex values, with a · 7aef469f
      Niels Möller authored
      new function hex2int. Also implemented calculation of total
      storage, removed the dependence on the .comment section, and use
      the $FILTER environment variable as a regexp for restricting the
      object files that are considered.
      
      Rev: src/nettle/ChangeLog:1.214
      Rev: src/nettle/list-obj-sizes.awk:1.2
      7aef469f
      History
      New function for decoding hex values, with a
      Niels Möller authored
      new function hex2int. Also implemented calculation of total
      storage, removed the dependence on the .comment section, and use
      the $FILTER environment variable as a regexp for restricting the
      object files that are considered.
      
      Rev: src/nettle/ChangeLog:1.214
      Rev: src/nettle/list-obj-sizes.awk:1.2
    list-obj-sizes.awk 1.04 KiB
    #! /usr/bin/awk -f
    
    # Run this filter on the output of
    #
    #   objdump -h libnettle.a
    
    function hex2int (hex) {
      n = 0;
      hex = tolower(hex);
      for (i = 1; i<=length(hex); i++)
        {
          n = n * 16 + index("0123456789abcdef", substr(hex,i,1)) - 1;
        }
    
      return n;
    }
    
    BEGIN {
        print "file            text-size  data-size  rodata-size";
        text_total = 0;
        data_total = 0;
        rodata_total = 0;
        name = "";
        filter = ENVIRON["FILTER"];
        if (!filter)
          filter = ".*";
        else
          printf "Filter: %s\n", filter;
    }
    
    /elf32/ {
      if (name)
        {
          printf "%25s %6x   %6x   %6x\n", name, text_size, data_size, rodata_size;
          text_total += text_size;
          data_total += data_size;
          rodata_total += rodata_size; 
        }
      if ($1 ~ filter)
        {
          name = $1; text_size = data_size = rodata_size = 0;
        }
      else
        name = ""
    }
    /\.text/ { text_size = hex2int($3) }
    /\.data/ { data_size = hex2int($3); }
    /\.rodata/ { rodata_size = hex2int($3); }
    
    END {
      printf "%25s %6x   %6x   %6x\n", "TOTAL", text_total, data_total, rodata_total;
    }