Commit Graph

157 Commits

Author SHA1 Message Date
Ruslan Ermilov
3d8712c3a1 Unbreak standalone `make depend' in gnu/usr.bin/perl.
Noticed by:	bde
2001-10-04 11:45:38 +00:00
Ruslan Ermilov
4448c79e47 Fix cross-building, etc:
1.  To cross-build, one now needs to set TARGET_ARCH, and not the
    MACHINE_ARCH.  MACHINE_ARCH should never be changed manually!

2.  Initialize DESTDIR= explicitly for bootstrap-tools, build-tools,
    and cross-tools stages.  This fixes broken header and library
    dependencies problem.  We build them in the host environment,
    and obviously want them to depend on host headers and libraries.
    The problem with broken header dependencies for bootstrap-tools
    and cross-tools was already partially solved (see BOOTSTRAPPING
    tests in bsd.prog.mk and bsd.lib.mk), but it was still there for
    build-tools if the user ran "make world DESTDIR=/foo".  Also,
    for all of these stages, the library dependencies were broken
    because of how bsd.libnames.mk define DPADD members.

    We still provide a glue to install bootstrap- and cross-tools
    under the ${WORLDTMP}.

    Removed PATH overrides for bootstrap-, build-, and cross-tools
    stages.  There is just no reason why we would need to override
    it, and the hacks to clean up the ${WORLDTMP} in the -DNOCLEAN
    case are no longer needed with fixes from this step.

    That is, we now never use ${WORLDTMP} headers and libraries,
    and we don't use any ${WORLDTMP} installed binaries during
    these stages.  Again, these stages depend solely on the host
    environment, including compiler, headers, and libraries.

3.  Moved "miniperl" back from cross-tools (it has nothing to do
    with a cross-compiler) to build-tools where it belongs.  The
    change from step 1 let to do this.  Also, to make this work,
    build-tools targets of "cc_tools" and "miniperl" were modified
    to call "depend".  Here follow the detailed explanations.

    There are two categories of build tools, for now.  In the first
    category there are "cc_tools" and "miniperl".  They occupy the
    whole (sub)directory, and nothing needs to be done in this
    subdirectory later during the "all" stage.  They are also
    constructed using system makefiles.  We must build the .depend
    early in the build-tools stage because:

    1)  They use (and depend on) the host environment.

    2)  If we don't do this in build-tools, the "depend" stage of
        buildworld will do this for us; wrong library and header
        dependencies will be recorded (DESTDIR=${WORLDTMP}) and,
        what's worse, the "all" stage may then clobber the
        build-architecture format tools (that we built in the
        build-tools stage) with the target-architecture format
        ones, breaking cross build.

    In the second category there are all other build-tools.  They
    share their directory with the "main" module that needs them
    in the "all" stage, and they don't show up themselves in the
    .depend file.  The portion of this fix was already committed
    in gnu/usr.bin/cc/cc_tools/Makefile,v 1.52.

4.  "libperl" is no longer a build tool, and "miniperl" is the
    stand-alone application.  I had to make this change because
    build-tools and "all" stages share the same object directory.
    Without this change, if we cross compile, libperl.a is first
    built for the build architecture during the build-tools stage
    (for the purposes of immediate linkage with "miniperl").
    Later on, the "all" stage sees this library as up-to-date,
    and doesn't rebuild it.  The effect is that the wrong format
    static libperl library is installed with installworld.

5.  Fixed "includes" to install secure/lib/libtelnet headers if
    required.

Reviewed by:	bde
2001-09-29 13:17:54 +00:00
Mark Murray
e284cfe41e [ Very nasty nautical expletive removed ]
Remove debugging code that should never have been committed.
2001-09-21 13:50:31 +00:00
Mark Murray
b6c358a73d Through some hackery-pokery, allow folks to cd to src/gnu/usr.bin/perl
and do the usual "make obj && make depend all".

This sort of stuff makes my teeth itch, but folks wanted it badly
enough, so here it is.
2001-09-20 12:22:27 +00:00
Anton Berezin
90270b8e6f Fix the build of C programs that link against libperl, and use the
blessed way of doing this:

   cc -o interp interp.c `perl -MExtUtils::Embed -e ccopts -e ldopts`

In order for this to work, ldopts should contain -lcrypt.

PR:		21804
Reviewed by:	markm
2001-06-13 20:37:03 +00:00
Mark Murray
0e90f2aeb6 For the time being, Perl threading is considered dangerous. How, when
and why this is re-enabled will be addressed again in the future.
2001-05-31 11:04:53 +00:00
Mark Murray
fac189508a From the submitter:
$ PERL_DL_NONLAZY=1 perl -MPOSIX -e ''
Can't load '/usr/libdata/perl/5.6.0/mach/auto/POSIX/POSIX.so' for module
POSIX: /usr/libdata/perl/5.6.0/mach/auto/POSIX/POSIX.so: Undefined
symbol "sv_setptrobj" at /usr/libdata/perl/5.6.0/XSLoader.pm line 73.
 at /usr/libdata/perl/5.6.0/mach/POSIX.pm line 24
Compilation failed in require.
BEGIN failed--compilation aborted.

This problem only exists in -CURRENT.  Most often it is reproduced when
compiling some perl extension manually.  Make test uses PERL_DL_NONLAZY,
and if a tested module uses POSIX, boom!

Luckily, we don't see it very often, mostly because the vast majority of
p5 ports do not perform the `make test' step.

Submitted by:	Anton Berezin <tobez@tobez.org>
Needs to be a committer already:	Anton Berezin <tobez@tobez.org>
2001-05-26 17:40:09 +00:00
Mark Murray
49454ac36c CURRENT no longer needs -pthread 2001-05-26 14:06:45 +00:00
Mark Murray
2a7d49a804 - Avoid circular `use Config', which may lead to random synax errors
produced by miniperl during buildworld phase.

- While at it, do loading of SelfLoader only when it is needed, and in
  place where it is needed.

Submitted by:	tobez@tobez.org (who is doing way too much good work
			and is in need of the Commit Bit punishment)
2001-05-02 21:18:32 +00:00
Josef Karthauser
f383120181 * Add Config.pm to fight situations when perldoc(1) showed a manual page
for a module overridden by BSDPAN instead of the original module.

* Fix wrong manual section numbers in SEE ALSO.

* Add `Revision 42' to the beer-ware license.  The BSDPAN author did not
  originally get the reference and removed the revision from original
  phk's version.

Submitted by:	Anton Berezin <tobez@tobez.org>
2001-05-01 09:25:24 +00:00
Mark Murray
eeb8ab80dc From the author:
Fix a bug when the return values from the overridden sub were lost
during the first invocation.
2001-04-08 20:11:51 +00:00
Josef Karthauser
421b34291f Fix a few bugs in BSDPAN:
* Fix a bug which prevented the second invocation of overloaded
  subs governed by SelfLoader from functioning.

* Fix a bug with XS modules.  MakeMaker determines where the xsubpp
  preprocessor is located by adding "ExtUtils" string to the Perl's
  system path.  At the same time, BSDPAN has to fool MakeMaker into
  thinking that the Perl's system path is elsewhere.  Now we
  `reverse-adjust' the notion of the Perl's system path for a
  moment, so xsubpp utility is found.

This should fix the breakage with some p5- ports.

Reported by:	vanilla
Submitted by:	Anton Berezin <tobez@tobez.org>
2001-04-05 13:59:51 +00:00
Josef Karthauser
d3b6c99818 Commit the first version of BSDPAN.
BSDPAN is the collection of modules that provides tighter than ever
integration of Perl into BSD Unix.

Currently, BSDPAN does the following:

o makes p5- FreeBSD ports PREFIX-clean;

o registers Perl modules in the FreeBSD package database with a
  package name derived from the module name.
  The name is of the form: bsdpan-ModuleName-V.VV.

Anyone interested in where BSDPAN is developing should read Anton's
message to the ports mailling list:
	Message-ID: <20010105040828.A26011@heechee.tobez.org>

Submitted by:	Anton Berezin <tobez@tobez.org>
2001-04-03 18:38:53 +00:00
Ruslan Ermilov
e5ac5644e2 MAN[1-9] -> MAN. 2001-03-27 14:59:06 +00:00
Peter Wemm
b36bb32876 When setproctitle() moved from libutil to libc, we forgot to back the
change out that made libperl.so dynamically depend on libutil.so to pick
up setproctitle() in its old location.  This breaks changes involving
incomptabable libc's because ld looks for the dynamic dependency
(which it has no business doing anyway) in the wrong place - /usr/lib!
2001-02-13 05:19:56 +00:00
Marcel Moolenaar
ad879ce955 Fix cross-building.
o  Move building libperl and miniperl from build-tools to
   cross-tools. libperl uses MACHINE_ARCH to determine the
   right configuration, which doesn't match the build
   machine when cross-building if they are built as build-
   tools.
o  Since miniperl needs to be built as a cross-tool, it
   needs to be installed under /usr/obj so that it can be
   used (cross-tools have a special object directory to
   avoid build conflicts. As a downside, you can't easily
   run cross-tools from their object directory). Remove
   the install and distribute override targets. To avoid
   having miniperl installed by installworld, remove it
   from SUBDIR.
o  We can't pickup miniperl from the object directory but
   since it's installed, depend on PATH. This is save,
   because the makefiles are run with a known path.
o  Build libperl again as part of the library target. A
   _libperl variable existed, but it was never defined.
o  Add chmod to the list of saved tools, because perl
   conditionally uses it during install.

The bootstrap-tools and cross-tools targets are modified to
avoid building profiled and shared libraries. While here,
have these targets build static binaries instead of shared
binaries.

Approved by: markm
2000-11-20 02:17:34 +00:00
Vanilla I. Shu
32449e4f80 Change "PERL_THREADED=yes" to "PERL_THREADED=true". 2000-10-30 04:52:33 +00:00
Vanilla I. Shu
b5ccf8460b Add suffix "-thread" to archname when perl with thread support.
Approved by:	markm
2000-10-30 03:27:06 +00:00
Mark Murray
c0329b1af3 Gosh. I managed to commit the wrong version of this file. Darn;
I must remember not to do that again.

(This fixes broken install and distribute targets)
2000-09-15 06:14:02 +00:00
Mark Murray
8680b887a2 Silence the perl build a lot; particularly in the case where a
"make all" is being done on top of a "make buildworld", and nothing
needs making.

Asked for by:	jkh
2000-09-14 19:58:07 +00:00
Mark Murray
116d5cd80d Fixes and cleanups to the perl build; don't error out when NOCLEAN is
set and directories are being (re)made; build the procname ($0) stuff,
don't install miniperl.
(Miniperl needs a revisit).
2000-08-20 10:03:26 +00:00
Warner Losh
9a88e86cbe Always build and install suidperl. Only install suidperl setuid when
ENABLE_SUIDPERL is set to true.  When perl is updated to remove the
fork mail code, additional warnings will enable the users to know what
is gonig on and how to correct it.  Markm will make those commits as
part of his perl patch integration.  suidperl is installed with
execute permissions so that markm's added error messages wil be seen
by the user.
2000-08-13 01:40:06 +00:00
Warner Losh
47945ade89 Don't build suidperl by default. Make users specifically enable its
building.
2000-08-10 22:59:53 +00:00
Mark Murray
b463622b82 Bunch-o'-tweaks.
1) (Biggest) I tried long-and-hard to keep the version number (5.006)
   backwards compatible with FreeBSD; I have lost this battle, and
   must defer to the Perl convention (5.6.0). Victims include suidperl.
   this means that dirs with a name of 5.006 will be replaced with
   dirs named 5.6.0 in both /usr/libdata/perl  and /usr/local/lib/perl.

2) Errno module is added.

3) Alpha bits extensively tweeked after a Beast-build.

Other commits to follow.
2000-07-02 15:45:05 +00:00
Peter Wemm
f1cfac6222 Fix the perl build on the Alpha. int32 is 'int' not 'long'. int64 is
'long', not 'long long'.  Maybe the intXX_t types should have been used.
2000-06-30 11:22:19 +00:00
Mark Murray
8bea8d9daa Tweaks to the build to allow "make -DNOCLEAN" and "make release" to
work.
2000-06-29 18:21:51 +00:00
Mark Murray
a67bcabd14 Fix the upgrade-build case. 2000-06-27 15:28:14 +00:00
Mark Murray
609108d899 Fix for bootstrapping. Grr. Pointy Hat Please? 2000-06-26 15:02:10 +00:00
Mark Murray
608677bb6e Thread support for v5.6.0 2000-06-26 10:20:57 +00:00
Mark Murray
9bbc1ad14d Userland build stuff for Perl5.006.
This is cleaned up quite a lot since 5.00502, and the library modules
are broken out into individual dirs. This should please a lot folk.
2000-06-25 14:48:20 +00:00
Andrey A. Chernov
8db63bde5b Remove libxpg4 2000-06-04 23:16:14 +00:00
David E. O'Brien
539aabcb54 Perl lib configuration for IA-64 (along with PPC and arm32) 2000-04-17 19:44:57 +00:00
Steve Price
71ed47edd8 Add a config.SH for the sparc and sparc64 ports. The ones for the sparc64
might need some adjusting for the size of long long and long double.

Reviewed and approved by:	markm
2000-04-16 16:51:44 +00:00
Bruce Evans
758aca682c Fixed wrong path to libperl in DPADD.
Fixed wrong path to libperl in LDADD in some funky objdir setups.

Use ${dir}/libfoo.a instead of -L${dir} -lfoo for local static libraries
in LDADD so that `make checkdpadd' doesn't report non-errors.

Fixed misformatting of $FreeBSD$.
2000-03-27 18:29:46 +00:00
Bruce Evans
de97d66311 Don't abuse LDADD for holding linker flags. Doing so broke
`make checkdpadd'.  Linker flags (ones passed via ${CC}) go in
LDFLAGS.

Fixed some style bugs (misformatting of $FreeBSD$).
2000-03-27 15:58:53 +00:00
Bruce Evans
aceb805ea9 Fixed missing DPADD.
Fixed some style bugs (some usual ones for LDADD, and misformatting of
$FreeBSD$).
2000-03-27 15:40:30 +00:00
Mark Murray
e986c01b3f Considerable upgrade to the way perl links to shared objects. This
fixes the way that third-party apps like apache link in perl .so's
(and previously did not get libperl linked in.)

NOTE - you neeed to recompile all your perl stuff - all the p5-*
por4ts with C code, and things like mod_perl.
2000-03-08 15:45:14 +00:00
Mark Murray
bdca82d4e3 Fix for (amongst other things) the cross-compile case where a too-old
version of libperl was being found.

Tested on:	beast
2000-01-29 14:18:02 +00:00
Peter Wemm
6e2578e4c4 Revert the libcrypt/libmd stuff back to how it was. This should not have
happened as it was working around problems elsewhere (ie: binutils/ld
not doing the right thing according to the ELF design).  libcrypt has
been adjusted to not need the runtime -lmd.  It's still not quite right
(ld is supposed to work damnit) but at least it doesn't impact all the
users of libcrypt in Marcel's cross-build model.
1999-12-18 13:55:17 +00:00
Marcel Moolenaar
d917cb952c Add libmd to LDFLAGS. libmd is needed by libcrypt. 1999-12-16 12:12:28 +00:00
Jordan K. Hubbard
edad13b0a1 Make the perl build a little less chatty.
Reviewed by:	markm
1999-12-16 11:21:08 +00:00
Marcel Moolenaar
7c99ddf2cc Add libmd (or move it after libcrypt). We don't want the linker to be
smart because it will definitely get it wrong. This popped up during
cross-linking.
1999-12-16 10:55:45 +00:00
Marcel Moolenaar
6c249bacea Misuse MakeMaker's DEFINE parameter to add an include path to the cc
command line. The makefiles created can now be used for cross-building.
1999-12-15 18:06:49 +00:00
Marcel Moolenaar
6d467b524d Override PERL and FULLPERL to be just "perl". This prevents MakeMaker
(ie Makefile.PL) from creating makefiles that explicitly use the perl
from the object tree. It breaks cross-building. While I'm here, create
a variable that holds common MakeMaker arguments used by all targets,
and by doing so automaticly fixed a bug.

Approved by: markm
1999-12-04 13:01:21 +00:00
Marcel Moolenaar
a900d959ff Add miniperlmain.c to CLEANFILES and remove a second instance of
config_h.sh

Not objected to by: markm
1999-12-04 12:40:38 +00:00
Sheldon Hearn
ea97bd380d Add perlopentut.pod, perlreftut.pod and perlthrtut.pod to the list of
pod files to be converted to and installed as manual pages.

These were probably overlooked in the last minor version number upgrade
to perl5.  This change was approved by the perl5 maintainer.

PR:		14649
Submitted by:	Andy Farkas <andyf@speednet.com.au>
1999-11-17 12:22:51 +00:00
Mark Murray
535989d7d0 Rename a macro; it gets set at "make world" time, and I had a local
mod that masked this. D'uh.
1999-09-25 06:59:10 +00:00
Mark Murray
948f185ef5 Fix problem where a macro is not properly initialised in the !THREAD
case. Simple reodering does it.

Thanks to:	sos
1999-09-24 19:39:34 +00:00
Mark Murray
3ea5059f1e Low-level, but significant cleanup of Perl's build process.
This should significantly ease "make; make install" loops.
1999-09-24 15:32:11 +00:00
Mark Murray
15a7acf286 Oops. Forgot to cvs add these for threads support. 1999-09-04 19:17:13 +00:00