summaryrefslogtreecommitdiffstats
path: root/Modules/ld_so_aix
blob: 77605c8c0e68bf158adb3fa023786e7c9958985b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/sh
#
#   ========================================================================
#   FILE:           ld_so_aix
#   TYPE:           executable, uses makexp_aix
#   SYSTEM:         AIX
#
#   DESCRIPTION:    Creates a shareable .o from a pre-compiled (unshared)
#                   .o file
#
#   ARGUMENTS:      Same as for "ld".  The -bM, -bE, -bI, -H, -T, and -lc
#                   arguments of "ld" will be supplied by this script.
#
#   NOTES:          1.  Currently specific to the building of Python
#                       interpreter shared objects, in that the entry
#                       point name is hardcoded based on the object file
#                       name (the "mathmodule.o" file will expect an
#                       entry point of "initmath").  This could be remedied
#                       by the support (or simple expectation) of a "-e"
#                       argument.
#                   2.  The resulting shared object file is left in the
#                       current directory with the extension .so
#                   3.  Uncommenting the "echo" lines gives detailed output
#                       about the commands executed in the script.
#                       
#   HISTORY:        Jul-1-1996  -- Make sure to use /usr/ccs/bin/ld    --
#                               -- Use makexp_aix for the export list. --
#                   Vladimir Marangozov     (Vladimir.Marangozov@imag.fr)
#
#                   Manus Hand (mhand@csn.net) -- Initial code -- 6/24/96
#   ========================================================================
#

# Variables
objfile=$1
shift
filename=`echo $objfile | sed -e "s:.*/\([^/]*\)$:\1:" -e "s/\..*$//"`
entry=init`echo $filename | sed "s/module.*//"`
ldopts="-e$entry -bE:$filename.exp -bI:python.exp -bM:SRE -T512 -H512 -lc"
ldargs="$objfile $*"

# Export list generation
makexp_aix $filename.exp "$objfile" $objfile

# Perform the link.
#echo "ld $ldopts $ldargs"
/usr/ccs/bin/ld $ldopts $ldargs

# Delete the module's export list file.
# Comment this line if you need it.
rm -f $filename.exp

# Remove the exec rights on the shared module.
#echo chmod -x `echo $objfile | sed "s/\.o$/.so/"`
chmod -x `echo $objfile | sed "s/\.o$/.so/"`