Commit Graph

229649 Commits

Author SHA1 Message Date
christos
defa6c58f6 PR/46096: Jarmo Jaakkola: fix many problems with dependencies (PR 49086)
Quite extensive rewrite of the Suff module.  Some ripple effects into
Parse and Targ modules too.

Dependency searches in general were made to honor explicit rules so
implicit and explicit sources are no longer applied on targets that
do not invoke a transformation rule.

Archive member dependency search was rewritten.  Explicit rules now
work properly and $(.TARGET) is set correctly.  POSIX semantics for
lib(member.o) and .s1.a rules are supported.

.SUFFIXES list maintenance was rewritten so that scanning of existing
rules works when suffixes are added and that clearing the suffix list
removes single suffix rules too.  Transformation rule nodes are now
mixed with regular nodes so they are available as regular targets too
if needed (especially after the known suffixes are cleared).

The .NULL target was documented in the manual page, especially to
warn against using it when a single suffix rule would work.
A deprecation warning was also added to the manual and make also
warns the user if it encounters .NULL.

Search for suffix rules no longer allows the explicit dependencies
to override the selected transformation rule.  A check is made in
the search that the transformation that would be tried does not
already exist in the chain.  This prevents getting stuck in an infinite
loop under specific circumstances.  Local variables are now set
before node's children are expanded so dynamic sources work in
multi-stage transformations.  Make_HandleUse() no longer expands
the added children for transformation nodes, preventing triple
expansion and allowing the Suff module to properly postpone their
expansion until proper values are set for the local variables.

Directory prefix is no longer removed from $(.PREFIX) if the target
is found via directory search.

The last rule defined is now used instead of the first one (POSIX
requirement) in case a rule is defined multiple times.  Everything
defined in the first instance is undone, but things added "globally"
are honored.  To implement this, each node tracks attribute bits
which have been set by special targets (global) instead of special
sources (local).  They also track dependencies that were added by
a rule with commands (local) instead of rule with no commands (global).

New attribute, OP_FROM_SYS_MK is introduced.  It is set on all targets
found in system makefiles so that they are not eligible to become
the main target.  We cannot just set OP_NOTMAIN because it is one of
the attributes inherited from transformation and .USE rules and would
make any eligible target that uses a built-in inference rule ineligible.

The $(.IMPSRC) local variable now works like in gmake: it is set to
the first prerequisite for explicit rules.  For implicit rules it
is still the implied source.

The manual page is improved regarding the fixed features.  Test cases
for the fixed problems are added.

Other improvements in the Suff module include:
  - better debug messages for transformation rule search (length of
    the chain is now visualized by indentation)
  - Suff structures are created, destroyed and moved around by a set
    of maintenance functions so their reference counts are easier
    to track (this also gets rid of a lot of code duplication)
  - some unreasonably long functions were split into smaller ones
  - many local variables had their names changed to describe their
    purpose instead of their type
2014-08-23 15:05:40 +00:00
wiz
ecd932c9a3 Bump date for previous. 2014-08-23 15:03:22 +00:00
christos
be99220c64 Convert test in PR/49085 2014-08-23 15:02:04 +00:00
christos
4da7383dde PR/49085: Jarmo Jaakkola: fix several parsing errors
Don't exit from var.c:Var_Parse() before possible modifiers are handled
on D and F modified versions of local variables.  Properly expand $(?D)
and $(?F) too.

Make line continuations in rule's commands POSIX compliant.

Fix the syntax error caused by lib(member) as the last target before
a dependency operator.

Document the line continuation change in the manual page.  Also talk
more about the POSIX style local variables and their modifiers.

Add tests covering the fixed problems into d_posix.mk.  The test is
a known failure at the moment because of PR 49086 and PR 49092.

[XXX: unconverted tests]
2014-08-23 14:50:24 +00:00
riastradh
fd20828015 Another round of nouveau whack-a-mole. 2014-08-23 08:03:33 +00:00
matt
dfb3f06a5c Make -mabi=elfv2 work for powerpc64 2014-08-23 06:50:18 +00:00
matt
63c25b297c Change powerpc64 to use GCC 4.8 2014-08-23 02:26:36 +00:00
matt
cc87ea3a00 #if 0 some code not in use yet 2014-08-23 02:25:23 +00:00
matt
38dcdc34d9 Minimize differences between powerpc and powerpc64
Fix powerpc64 assembly to use right instructions for 64bit CPUs.
Use hidden for __curbrk and __minbrk to avoid GOT/TOC relocations.
2014-08-23 02:24:22 +00:00
matt
794ed9d503 Fix cmpptr/cmpreq/etc to use right mnemonics 2014-08-23 02:21:44 +00:00
matt
f659dce042 Add
LDFLAGS+=              -Wl,-m,elf32ppc_nbsd
2014-08-23 02:20:55 +00:00
matt
7532f48a67 Fix powerpc64 support for NetBSD.
Add __PPC_ISEL__ to indicate cpu support the isel instruction
2014-08-23 02:17:47 +00:00
mlelstv
76c8639541 Accept driver names only in the two args form together with a minor number.
That's what the documentation says and also avoids the case where the driver
name converted to a major number is interpreted as a packed dev_t number.
2014-08-22 22:28:50 +00:00
aymeric
94f28557e3 In tagq_free(), fix the test checking whether a TAGQ should be removed from
its tailq. This required introducing a new flag in the TAGQ structure to
avoid reverting to poking under the hood of the queue.h API.

The concrete bug it solves is that using tags would make vi crash reliably
on exit.
2014-08-22 21:28:20 +00:00
matt
4e8f1b53e9 Rework to be avoid a conditional assignment which results in:
sbin/ping6/ping6.c:1879:8: error: 'cbit.skip' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    cur += ntohs(cbit.skip) * 32;
2014-08-22 20:54:29 +00:00
jakllsch
02930256c2 Fix what is almost certianly an off-by-one error when configuring pads on
AM335x for BPP greater than 16.
2014-08-22 20:01:16 +00:00
jakllsch
2911d0aae1 Support WSDISPLAYIO_GET_FBINFO ioctl in tifb(4). 2014-08-22 19:59:18 +00:00
jakllsch
b3eb8c6c2b tifb can support 32 and 24 BPP framebuffer modes; pull in corresponding raspos
support.
2014-08-22 19:44:04 +00:00
matt
903c030159 Remove enclosing parens on return. 2014-08-22 17:19:48 +00:00
riastradh
b4d2027a4b Fix failure case in rb_tree_find_node_leq/geq.
Return NULL, not `NULL - offset'.

XXX pullup to netbsd-5, netbsd-6, netbsd-7
2014-08-22 17:17:02 +00:00
hannken
d0fd8c21fa Use mount from argument "mp", "vp->v_mount" is not valid here.
PR kern/49142 (panic in ext2fs_loadvnode mounting an ext2fs filesystem)

Needs pullup to -7
2014-08-22 16:49:30 +00:00
apb
6b933a652f Test make(1) by running the maintained tests, not unmaintained
copies of them.

* Remove all old tests from src/tests/usr.bin/make/d_*.  These tests
  were unmaintained old copies of the actual tests which are maintained
  under src/usr.bin/make/unit-tests.  One exception is the test in
  d_unmatchedvarparen.mk, which was new, but has nw been added to
  src/usr.bin/make/unit-tests/varmisc.mk.
* In src/tests/usr.bin/make/Makefile, copy all
  the tests from src/usr.bin/make/unit-tests to
  ${DESTDIR}/usr/tests/usr.bin/make/unit-tests.
* In src/tests/usr.bin/make/t_make.sh, run the tests installed above,
  instead of the old tests.
* In etc/mtree/NetBSD.dist.tests, create the
  usr/tests/usr.bin/make/unit-tests diectory.
* Update the set lists for all the above.
2014-08-22 16:45:32 +00:00
matt
9205e77af0 add powerpc64 support 2014-08-22 15:27:50 +00:00
riastradh
46b6cca670 Revert to mapping the whole GTTMMADR region all at once for now.
This was split up so we could map the GTT prefetchable without
interfering with the MMIO registers, but it interferes with old drm
which tries to map the whole region and which is still hooked up for
the moment.

Once we unhook old drm for good we can put this back.
2014-08-22 15:26:28 +00:00
pooka
272d41f121 Add a compile-time selector for I/O space operations. Needs more work
some day, but allows virtio drivers to work today.
2014-08-22 14:28:58 +00:00
pooka
b41a4e160f Nuke the DOMAINADD() macro and just call domain_attach(), now that things
work correctly that way.
2014-08-22 11:34:28 +00:00
pooka
71c14bfaa2 Change the meaning of the boolean parameter to domaininit().
was: attach route domain if found from domains link set
now: attach any domain which is found from domains link set

No functional change to monolithic kernel.  In a rump kernel, which
attaches networking domains "modularly", prevents domains from
accidentally leaking in via the link set in static linked scenarios.

Problem reported by cube, Tom Bousso, and the voices in my head.
2014-08-22 11:28:03 +00:00
apb
68cca2bb2f sort 2014-08-22 10:51:38 +00:00
apb
0b9da2a3de Adapt the sortlists target to deal with commented file names, like
"#./dir/file".  Such lines now compare equal to their uncommented
counterparts like "./dir/file".
2014-08-22 10:51:18 +00:00
pooka
08f38d958e Build virtio components as part of RUMPPCIDEVS 2014-08-22 09:58:55 +00:00
pooka
db494c8796 Add a rump kernel component for ld@virtio. 2014-08-22 09:57:05 +00:00
skrll
32f3cf5261 Remove unnecessary #include 2014-08-22 09:49:13 +00:00
pooka
d7b8f51b8f Add a rump kernel component for the vioif virtio network interface. 2014-08-22 09:48:54 +00:00
pooka
e125b93131 Add a rump kernel component for the virtio bus. 2014-08-22 09:45:29 +00:00
matt
9e064c8f61 Check the variable for RELOCATABLE_NEEDS_FIXUP 2014-08-22 06:52:37 +00:00
matt
80f59eea37 Simplify a little (avoid indirection) 2014-08-22 06:51:34 +00:00
mrg
975cc27cdd rerun mknative for hppa, m68k, sparc*, and vax. 2014-08-22 05:39:20 +00:00
apb
ee8e02daed Add a .PATH, so you can be in any other directory and run
"make -f /path/to/this/Makefile sometest.out"
and have it create sometest.out in your current directory.
2014-08-21 22:00:30 +00:00
christos
83a84c1bf3 over-initialize for the benefit of gcc 2014-08-21 15:43:35 +00:00
apb
c354f55834 Add varmisc.mk, for miscellaneous variable tests.
For now, the only test is copied from
src/tests/usr.bin/make/d_unmatchedvarparen.mk.  This was
the only test in src/tests/usr.bin/make that was not also in
src/usr.bin/make/unit-tests.

XXX: src/tests/usr.bin/mk should be changed to reach over to
src/usr.bin/make/unit-tests, instead of keeping out of date copies
of the tests.
2014-08-21 15:37:13 +00:00
martin
0bf2d320c8 Revert previous, we have restores ABI for {u,}int_fast_*_t. 2014-08-21 15:27:37 +00:00
martin
3b1bddb922 Restore ABI for fast_{u,}int_*_t to what we have used for thirteen years. 2014-08-21 15:25:41 +00:00
reinoud
f873bdb932 Fix I2C naming for HDMI 2014-08-21 14:06:39 +00:00
reinoud
252f8540f5 Correct minor TX_CTRL_0_ guess and document the INTR interrupt control
register bits from the lan9730 docs. No functional change.
2014-08-21 14:02:10 +00:00
macallan
f8303d815f #if 0 code to map the VGA BIOS
I've been unable to find any code that actually uses the mapping and we may
want to read the ROM from drm2.
If no users show up within a week or so I'll delete it.
2014-08-21 13:52:22 +00:00
apb
b9dad2e00f Give each group of tests its own output file.
* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
  each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files.  There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines.  Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).
2014-08-21 13:44:51 +00:00
apb
8189a8d901 Stricter sed expression for matching an optional PID in square brackets. 2014-08-21 13:31:52 +00:00
apb
ff90baf509 When sanitising test output, replace "${TEST_MAKE}" with "make".
This string may appear in error messages that end up in the output.
2014-08-21 12:42:03 +00:00
christos
9171ceed70 revert previous; code checking tool is incorrect. Variables are not being
used in the non tbolt case.
2014-08-21 12:25:01 +00:00
christos
2e03efc64b PR/49087: Jarmo Jaakkola: Make sure that the first dependency is the C source
file so ${.IMPSRC} gets set correctly.
2014-08-21 08:52:23 +00:00