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 59 60 61 62 63 64 65 66 67 68 69 70
|
This is written by Nick - who never tried linux...
There are several ways to build Tk-b* for linux.
1. Build it static - should work on *any* platform, but will be
larger than dynamic load version.
Hassle here is all the demos etc. really need the #! line
changing to point at 'tkperl' rather than 'perl'.
2. Use a.out and dld
- you need dld-3.2.6
- You also need the "right" 'bash'.
- " Fall 1994 Yggdrasil Linux" + above dld has been known to work
- you may need to run ranlib on libX11.*
On Wed, 30 Aug 95 12:04:19 EDT
Adam Wasserman <awasser@hermes.sgc.com> writes:
>
>Let me state for the record that I'm using Linux 1.2.1 (Infomagic Mar '95
>Slackware), with gcc 2.6.3, dld 3.2.6, Tk-b6 and perl5.001m, and it
>all compiled and worked with dynamic loading with little effort or
>problem under /usr/local (besides the Pretty.pm stuff). I DID have to
>do "ranlib libX11.a" and get the updated dld. I don't believe my system
>is configured for ELF.
3. Use ELF, either distributed that way, or by building yourself.
- I believe ELF versions are 'new enough' to have 'right' bash
- Make sure *perl* is configured to use dl_dlopen rather than dld
as the load method. Or you get this symptom:
> Can't load './blib/auto/Tk/Tk.so' for module Tk: File not found at
> /usr/lib/perl5/DynaLoader.pm line 450.
>
> at blib/Tk.pm line 31
> BEGIN failed--compilation aborted at ./basic_demo line 5.
Chris. (stoner@cs.buffalo.edu) http://www.cs.buffalo.edu/~stoner
Says:
I had the same problem, I had to reconfigure perl to get it to work. Here is a
summary of my perl configuration that works:
Summary of my perl5 (patchlevel 1) configuration:
Platform:
osname=linux, osver=1, archname=i486-linux
uname='linux valhalla 1.2.8 #6 sun aug 20 16:49:00 edt 1995 i486 '
hint=recommended
Compiler:
cc='cc', optimize='-O2', ld='cc'
cppflags='-D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL'
ccflags ='-D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL'
ldflags =''
stdchar='char', d_stdstdio=define, usevfork=false
voidflags=15, castflags=0, d_casti32=undef, d_castneg=define
intsize=4, alignbytes=4, usemymalloc=n, randbits=31
Libraries:
so=so
libpth=/lib /usr/lib /usr/local/lib
libs=-lgdbm -ldbm -ldb -ldl -lm -lc -lbsd
libc=/usr/lib/libc.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef
cccdlflags='-fpic', ccdlflags='-rdynamic', lddlflags='-shared'
You can get this output with the myconfig script that comes with the perl5
distribution. I think it was using dl_dlopen that fixed the problem for me.
|