3 # Written: Nov 1994 Wayne Scott (wscott@ichips.intel.com)
5 # Create the export list for perl.
6 # Needed by AIX to do dynamic linking.
8 # This simple program relys on 'global.sym' and other *.sym files
9 # being up to date with all of the global symbols that a dynamic
10 # link library might want to access.
12 # Most symbols have a Perl_ prefix because that's what embed.h sticks
13 # in front of them. Variations depend on binary compatibility with
19 if test -f config.sh; then TOP=.;
20 elif test -f ../config.sh; then TOP=..;
21 elif test -f ../../config.sh; then TOP=../..;
22 elif test -f ../../../config.sh; then TOP=../../..;
23 elif test -f ../../../../config.sh; then TOP=../../../..;
25 echo "Can't find config.sh."; exit 1
30 : This forces SH files to create target in same directory as SH file.
31 : This is so that make depend always knows where to find SH derivatives.
33 */*) cd `expr X$0 : 'X\(.*\)/'` ;;
36 echo "Extracting perl.exp"
46 grep '^[A-Za-z]' global.sym | sort >$global
47 grep '^[A-Za-z]' interp.sym | sort >$interp
48 grep '^[A-Za-z]' compat3.sym | sort >$compat3
49 comm -23 $global $compat3 | sed 's/^/Perl_/' >> perl.exp
50 comm -12 $interp $compat3 | sed 's/^/Perl_/' >> perl.exp
51 comm -12 $global $compat3 >> perl.exp
52 comm -23 $interp $compat3 >> perl.exp
53 rm -f $global $interp $compat3
56 sed -n '/^[A-Za-z]/ s/^/Perl_/p' global.sym interp.sym >> perl.exp
57 expperlvars=/tmp/exp$$pv
58 expthrdvar=/tmp/exp$$tv
59 sed -n 's/^PERLVARI*(G\([^,]*\).*/Perl_\1/p' perlvars.h >> $expperlvars
60 sed -n 's/^PERLVARI*(T\([^,]*\).*/Perl_\1/p' thrdvar.h >> $expthrdvar
61 # The shebang line nicely sorts as the first one.
62 sort -o perl.exp -u perl.exp $expperlvars $expthrdvar
63 rm -f $expperlvars $expthrdvar
68 # If we use the PerlIO abstraction layer, add its symbols
71 if [ $useperlio = "define" ]
73 grep '^[A-Za-z]' perlio.sym >> perl.exp
77 # Extra globals not included above (including a few that might
78 # not actually be defined, but there's no harm in that).
87 perl_set_numeric_local
88 perl_set_numeric_standard