the rules how to build those sources. Generate makefiles defining ${COPTS},
${CPPFLAGS}, and ${SRCS} (== template).
Note that ${CPPFLAGS} is actually dfined as _CPPFLAGS like
_CPPFLAGS.tmp___gcc_bcmp.c=-DL__gcc_bcmp
and used to generate wrapper files (e.g. tmp___gcc_bcmp.c). Otherwise it's
automagically passed to ${CC} by bsd.*.mk.
We create wrapper sources (tmp_*.[cS]) on-the-fly and compile them. For
example, __gcc_bcmp() is compiled using tmp___gcc_bcmp.c, which #define's
L__gcc_bcmp and #include's libgcc2.c.
repeatedly with different -DXXX to generate similar objects (e.g. different
type size).
- Generate a list of other CC options to build *.o.
(See my sed-fu using hold space in get_libgcc_list_objs_xflags().)
parsing dependency lines in libgcc.mk.
- Generate a list of *.o -> *.{c,S} mapping. *.S files are known as
${LIB1ASMFUNCS}. Assume other *.o files are built from *.c. This information
is needed to generated wrapper sources later.
BSD makefiles to build libgcc. The goal is to build all functions rather
than managing the set of functions in gnu/lib/libgcc/Makefile.in by hand.
Because of the complexity of the build procedure, I leave not only generated
makefiles but also intermediate, analyzed data so that people can verify that
the conversion is done correctly.
We cannot user_from_uid(3) or group_from_gid(3) unless the system
also supports pwcache_userdb(3) and pwcache_groupdb(3). The build will
use the hosts password and user database otherwise. Switch back to the
old behaviour to only the native functions if they are all present.
This fixes cross builds under Mac OS X and FreeBSD.
Fix based on problem analysis provided by Akihiko Hayashi.
in $(HAVE_BINUTILS)=="219" case.
Fixes build failures on Cygwin. (new libbfd depends on libz)
BTW, should we revive old ones under src/usr.sbin for
native dbsym(8)/mdsetimage(8) binaries which don't need libbfd?
makes {MK,HAVE_}BINUTILS consistent with {MK,HAVE_}{GCC,GDB}.
Allow MKBFD to defines MKBINUTILS as a backwards compatibility hook.
Update the sets lists and add conditionals for lib{bfd,opcodes}.
both CONFIGURE_ARGS and NATIVE_CONFIGURE_ARGS to reduce duplication
between tool and native configuration
-allow to pass a "--with-arch" argument to both configurations
already use [u]int{16,32,64}_t types, and a few already had their own
#ifndef/#define/#endif code for a few of these macros. A future commit
will remove that now-redundant code in the affected tools.
libnbcompat already contains empty fparseln.lo
so previous fix doesn't work correctly.
i've just added broken fparseln check to configure script.
2. reworking cross build breakage under FreeBSD/MacOS X.
FreeBSD/MacOS X still have public /usr/include/runetype.h
derived from 4.4BSD-Lite. so i renamed out private header from
src/lib/libc/locale/runetype.h to src/lib/libc/locale/runetype_local.h
to solve this problems.
3. fix build breakage when CITRUS=no was set.
Where sed is used in a != assignment, use
.if make(depend) || make(all) || make(dependall) || make(install)
to ensure the command doesn't run at "make obj" time when TOOL_SED will
not have been built.
internal function that's usually named "__gettemp". However in a cross
build, "__gettemp" is in a namespace reserved for the host system, so we
can't use that. Use "__nbcompat_gettemp" instead, following the example
of several other functions or macros in tools/compat. Previously, this
was handled by using the name "gettemp", but that conflicts with the
local gettemp() function in dist/nawk.
> Prepare dummy <resolv.h> and <arpa/nameser.h> to make asn1_compile and
> compile_et compile on systems which don't have these BIND headers like Cygwin.
compile_et compile on systems which don't have these BIND headers like Cygwin.
Tested by "build.sh -m i386 -U release" on CYGWIN_NT-5.1-1.5.25,
and should close PR toolchain/29032.
libgcc/multilib on amd64
- enable the 32/64 bit libgcc/multilib support on sparc64
- adapt mknative-gcc to grab multilib.h
- use --enable-multilib on amd64 and sparc64
none of this affects the installed tools yet, just the src/tools one.
* in games/fortune/strfile/Makefile, build strfile as a
regular program instead of as a host tool;
* add tools/strfile directory to build strfile as a host tool;
* in tools/Makefile, add strfile to SUBDIR list;
* in BSD.*.mk, define TOOL_STRFILE variable;
* in games/fortune/datfiles/Makefile, use TOOL_STRFILE when creating
databases at build time;
* in distrib/sets/lists/games/mi, mention usr/games/strfile.
gmake by setting GMAKE_J_ARGS=-jN.
discussed with matt@ and a few others.
XXX: this is kind of hacky, as it will fork off more processes than
XXX: "-jN" says to, but there's no real way to get parallelism in
XXX: both the tools/gcc build and the rest of the build without
XXX: this.
cmd1 && cmd2 && cmd3
| | |
v v v
target:
cmd1
cmd2
cmd3
This makes the script (cmd1 && cmd2 && cmd3) slightly easier to debug. No
functional change expected.
get our versions if any of the functions aren't present on the host system.
Still assumes if the functions are all there, they work like ours, which
may be a problem too.
(for booth the tool build and mknative). gcc's "config.gcc" sets
it if the target is netbsd[2-9], but since the target is w/o version
number in our builds, it has no effect. Found by Nick Hudson,
patch approved by mrg.
This is adapted from the very detailed fix provided by
Giles Lean in PR bin/36678.
Only one simplified implementation is provided, instead of the
two implementations conditional on __GNUC_PREREQ__(2,95) that are
provided in NetBSD's <sys/endian.h>. The use of memcpy instead of
__builtin__memcpy, and the absence of __inline or __unused, should make
it independent of GCC.
and not /usr/bin/strip. This makes nbinstall usable for
cross-compiling in pkgsrc.
- Fix a typo in a comment.
- Fix strip() in the context of (v)fork:
- Build the argument string first using asprintf (simpler) and
avoid leaking memory from the child in the parent.
- Don't use warn in the child, as stdio should be avoided.
OK christos@, tested on Solaris by dmcmahill@.
has ssp functions built-in" test via the TARGET_LIBC_PROVIDES_SSP environment
variable, to allow us to configure a cross-compiler appropriately without
having to try to find out by looking in the target's source directory.
Tweak our build to tell gcc that the ssp bits are now in libc.
The native compiler appears to already think that the ssp bits
live in libc, so no change appears to be needed there.
The autoconf-generated configure script will be committed separately shortly.
flag. This ensures that -j<N> isn't accidentally inherited from the
environment, because the "--- foo ---" headers printed with -j<N> would
interfere with parsing the output.
bin/ls sources to libutil:
o Bump libutil minor version number
o Fix uses to include <util.h> to pick up the function definitions
o Fix most uses of flags_to_string() to release the now-malloc()ed result
where ${MAKEWRAPPERMACHINE} is the suffix XXX on the target's make
wrapper, nbmake-XXX.
Fixes toolchain/30673, "single arch host disklabel isn't enough".
default is to enable sim if there's support for the cpu).
The current list of "known to work" contains arches with G_SIM_OBS
already set: powerpc, powerpc64 and mips.
There's arm support in sim, but committed configs for arm do not have
G_SIM_OBS set, so I'm not enabling it here.
There's SH support in sim, but it fails to build out of the box, and
since we didn't build SH sim support for gdb 5.3, we keep it disabled.
Other arches shouldn't be affected, as there's no support for them in sim.
top-level configure, but to ${MAKE} configure-host as well.
Add more vars (for readline mostly) so that there's no configure
warnings about tests skipped b/c of cross-compilation.
gdb comes with its own copy of GNU readline 5.x, but
-I${DESTDIR}/usr/include stuffed at the beginning of the command line
makes it find our compat readline/readline.h (emulating readline 2.x)
that conflicts with the readline 5.x includes.
Makes README.mknative instructions actually work instead of failing
midway b/c of conflicting tilde_expand() prototypes.
Remove a 'never had a sane effect' .WAIT from a .ORDER line.
Don't add a (probably incorrect) dependency for 'make install' since
it contradicts a .ORDER line elsewhere when .ORDER applies recursively
to child nodes.
I also think that the stuff that tries to add dependencies between
the stuff that bsd.subdir.mk generates does not DTRT at all.
I suspect that build.sh builds things in an order that avoids issues here.
pick up tools/gettext that is built when MKMAINTAINERTOOLS=yes
As gettext is built after gmake - this only happens if you either do
an update build and tools/gmake gets rebuilt, or if you use the same
TOOLDIR for several ports.
than "sh" for executing commands. Useful in a cross-build environment.
* Do not define _PATH_BSHELL, because it is no longer used by make.
* In addition to _PATH_DEFSHELLDIR (the directory in which the default
shell can be found), define _BASENAME_DEFSHELL (the shell's basename).
* Use shell builtin string manipulation instead of sed to extract
the directory name and basename from $BSHELL.
OK sjg, christos