tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kernel build failure for evbppc due to uvm_physseg.c
Kernel build fails for evbppc/RB800:
% cd sys/arch/evbppc/compile/RB800 && nbmake-evbppc depend && nbmake-evbppc
...
../../../../uvm/uvm_physseg.c:1009:1: error: no previous prototype for 'uvm_physseg_set_avail_start' [-Werror=missing-prototypes]
uvm_physseg_set_avail_start(uvm_physseg_t upm, paddr_t avail_start)
^
../../../../uvm/uvm_physseg.c:1022:6: error: no previous prototype for 'uvm_physseg_set_avail_end' [-Werror=missing-prototypes]
void uvm_physseg_set_avail_end(uvm_physseg_t upm, paddr_t avail_end)
uvm_physseg_set_avail_{start,end} are declared by uvm/uvm_physseg.h only
when PMAP_STEAL_MEMORY is defined. For evbppc/RB800, PMAP_STEAL_MEMORY
is defined by uvm/pmap/pmap.h via powerpc/booke/pmap.h. However,
powerpc/booke/pmap.h includes uvm/uvm_physseg.h before uvm/pmap/pmap.h.
As a result, declarations for uvm_physseg_set_avail_{start,end} are lost.
At the moment, uvm_physseg_set_avail_start is used only by
acorn26/acorn26/pmap.c (and no one uses uvm_physseg_set_avail_end).
Why don't we declare them only when some special macro other than
PMAP_STEAL_MEMORY is defined, like below?
Thanks,
Rin
====
--- src/sys/uvm/uvm_physseg.c.orig 2016-12-27 00:10:24.575021092 +0900
+++ src/sys/uvm/uvm_physseg.c 2016-12-27 00:11:54.134699238 +0900
@@ -1004,7 +1004,7 @@
return HANDLE_TO_PHYSSEG_NODE(upm)->avail_start;
}
-#if defined(PMAP_STEAL_MEMORY)
+#if defined(UVM_PHYSSEG_LEGACY)
void
uvm_physseg_set_avail_start(uvm_physseg_t upm, paddr_t avail_start)
{
@@ -1033,7 +1033,7 @@
ps->avail_end = avail_end;
}
-#endif /* PMAP_STEAL_MEMORY */
+#endif /* UVM_PHYSSEG_LEGACY */
paddr_t
uvm_physseg_get_avail_end(uvm_physseg_t upm)
--- src/sys/uvm/uvm_physseg.h.orig 2016-12-27 00:10:21.257745088 +0900
+++ src/sys/uvm/uvm_physseg.h 2016-12-27 00:11:27.583156131 +0900
@@ -106,14 +106,14 @@
bool uvm_physseg_plug(paddr_t, size_t, uvm_physseg_t *);
bool uvm_physseg_unplug(paddr_t, size_t);
-#if defined(PMAP_STEAL_MEMORY)
+#if defined(UVM_PHYSSEG_LEGACY)
/*
* XXX: Legacy: This needs to be upgraded to a full pa management
* layer.
*/
void uvm_physseg_set_avail_start(uvm_physseg_t, paddr_t);
void uvm_physseg_set_avail_end(uvm_physseg_t, paddr_t);
-#endif /* PMAP_STEAL_MEMORY */
+#endif /* UVM_PHYSSEG_LEGACY */
#endif /* _KERNEL */
--- src/sys/arch/acorn26/include/pmap.h.orig 2016-12-27 00:12:36.537060156 +0900
+++ src/sys/arch/acorn26/include/pmap.h 2016-12-27 00:46:14.184365817 +0900
@@ -57,6 +57,8 @@
#define PMAP_UNMAP_POOLPAGE(va) ((va) - (vaddr_t)MEMC_PHYS_BASE)
#define PMAP_STEAL_MEMORY
+#define UVM_PHYSSEG_LEGACY
+
#endif /* _KERNEL */
#endif
Home |
Main Index |
Thread Index |
Old Index