Kaydet (Commit) 14421777 authored tarafından Guido van Rossum's avatar Guido van Rossum

Some new files...

üst 14a6e3d5
...@@ -66,6 +66,7 @@ John Redford ...@@ -66,6 +66,7 @@ John Redford
Timothy Roscoe Timothy Roscoe
Jim Roskind Jim Roskind
Kevin Samborn Kevin Samborn
Michael Scharf
Fred Sells Fred Sells
Denis Severson Denis Severson
Michael Shiplett Michael Shiplett
......
Subject: Dynamic Linking under HP-UX
From: "C. Derek Fields" <derek@gamekeeper.bellcore.com>
Date: Thu, 08 Sep 94 14:14:07 -0400
There are two important points. First, the python executable must be
linked with the -E option to explicitly export all symbols. This
works with the vanilla interpreter, but I am not sure how friendly it
will be when I try to embed the interpreter in a larger application.
It may be necessary to hand tune the exports using the -e option.
Anyway, the additional flag to $(CC) is "-Wl,-E", which passes the -E
flag to the compiler. My link line (from an actual run) looks like
this:
cc config.o -Wl,-E libModules.a ../Python/libPython.a ../Objects/libObjects.a ../Parser/libParser.a -lm -ldld -o python
Second, the dynamic module must be compiled with the +z option to make
it position independent and then linked into a shared library:
ld -b -o <modName>module.sl <object list>
The -b tells the linker to produce a shared library.
...@@ -17,13 +17,17 @@ COPYRIGHT The Python copyright notice ...@@ -17,13 +17,17 @@ COPYRIGHT The Python copyright notice
FAQ Frequently Asked Questions about Python (and answers) FAQ Frequently Asked Questions about Python (and answers)
Fixcprt.py Fix the copyright message (a yearly chore :-) Fixcprt.py Fix the copyright message (a yearly chore :-)
HISTORY News from previous releases -- oldest last HISTORY News from previous releases -- oldest last
HPUX-NOTES Notes about dynamic loading under HP-UX
HYPE More hype about Python
Makefile Used for administrative chores like cleaning up Makefile Used for administrative chores like cleaning up
NEWS News for this release NEWS News for this release
README The file you're reading now README The file you're reading now
RFD Request For Discussion about a Python newsgroup RFD Request For Discussion about a Python newsgroup
cheatsheet Quick summary of Python by Ken Mannheimer cheatsheet Quick summary of Python by Ken Mannheimer
dlMakefile Generic Makefile for dynamically loadable modules by Ken M.
fixfuncptrs.sh Shell script to fix function pointer initializers fixfuncptrs.sh Shell script to fix function pointer initializers
indent.pro GNU indent profile approximating my C style (by Steen Lumholt)
python-mode.el Emacs mode for editing Python programs (thanks, Tim!) python-mode.el Emacs mode for editing Python programs (thanks, Tim!)
python.gif 4-level grayscale image of a Python (snake) python.gif 4-level grayscale image of a Python snake
python.man UNIX man page for the python interpreter python.man UNIX man page for the python interpreter
renumber.py Script to renumber the sections in the FAQ renumber.py Script to renumber the sections in the FAQ
# Makefile to do general-coverage creation of dynamic-load libraries
# from python C-module sources.
# $Id$
# Created by Ken Manheimer, Jul-1994. ken.manheimer@nist.gov, 301 975-3539
# To configure for your site, select the appropriate SOURCES and macro
# def and assign the right path to the prefix macro.
ARCH= sun4
prefix= /depot/sundry
DESTLIB= $(prefix)/lib/python/$(ARCH)
### For Sun Make; tested in v 1.0, under both SunOS 4.1.3 and SunOS 5.3:
#SOURCES:sh= echo *.c
### For Gnu Make; works at least for v 3.59:
SOURCES= $(wildcard *.c)
# To configure for a new module:
# - put the module in the current directory
# - if it doesn't require any special compile or load options, that's it.
# - if it does require special compile or load options, create a macro
# composed of the (full) module name, sans suffix, plus 'CFLAGS' or
# 'LDFLAGS', depending on the compile phase in question.
metalbasemoduleCFLAGS= -I$(prefix)/include/mbase51 -DNO_TIMEB -DNO_USHORT -DNO_ENCRYPT
metalbasemoduleLDFLAGS= -L/depot/sundry/plat/lib -lmb
cursesmoduleCFLAGS= -I/usr/5include
cursesmoduleLDFLAGS= -L/usr/5lib -lcurses -ltermcap
OBJS= $(SOURCES:.c=.so)
CC= gcc
OPT= -g -O
DEFS= -DHAVE_CONFIG_H
INCLDIR= $(prefix)/include/python
CFLAGS= $(OPT) -I$(INCLDIR) -I.. $(DEFS)
LD= ld
all: $(OBJS)
%.o: %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $($*CFLAGS) -o $@ $<
%.so: %.o
$(LD) $(LDFLAGS) -o $@ $< $($*LDFLAGS) $(LOADLIBES)
PHONY: echo # For testing derivation of $(OBJS).
echo:
@echo "(Set SOURCES def if you don't see a '.so' for each '.c' between the brackets)"
@echo :$(OBJS):
PHONY : install
install: $(OBJS)
ls $(OBJS) | cpio -pm $(DESTLIB)
PHONY : clean
clean:
rm -f *.o *.so
-sob
-nbad
-bap
-br
-nce
-ncs
-npcs
-i8
-ip8
-c25
-T PyObject
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment