manefesto писал(а):7.2-stable поддерживается ?
Да. Это RELENG_7_2 (/releng/7.2/) или старый RELENG_7 (/stable/7/) ? там в комментариях номера коммиттов в subversion написаны, к коим привязаны проверки на OSVERSION. В зависимости от того насколько старая у тебя версия порт либо соберется, либо сдастся в самом начале.
Код: Выделить всё
$ make OSVERSION=700019
===> vesa-kmod-20091020 is marked as broken: required version mismatch: FreeBSD earlier than 6.3 and 7.1 are not supported.
*** Error code 1
Stop in /a/freebsd-ports/misc/vesa-kmod.
OSVERSION берется на основе <sys/param.h> или kern.osreldate
Код: Выделить всё
# Get __FreeBSD_version
.if !defined(OSVERSION)
.if exists(/usr/include/sys/param.h)
OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h
.elif exists(/usr/src/sys/sys/param.h)
OSVERSION!= ${AWK} '/^\#define[[:blank::]]__FreeBSD_version/ {print $$3}' < /usr/src/sys/sys/param.h
.else
OSVERSION!= ${SYSCTL} -n kern.osreldate
.endif
.endif
для сборки используются исходники ядра, поэтому желательно чтобы они были той же версии, что и работающее ядро.
Я тестировал только сборку, загружать модуль не пробовал. Ниже warning'и, кои я решил проигнорить
Код: Выделить всё
$ make SYSDIR=/a/freebsd_releng_7_2/sys OSVERSION=700020
...
cc -O2 -pipe -march=native -fno-strict-aliasing -march=native -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -std=gnu99 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c x86bios.c
x86bios.c: In function 'x86bios_emu_inb':
x86bios.c:190: warning: comparison is always true due to limited range of data type
x86bios.c: In function 'x86bios_emu_outb':
x86bios.c:222: warning: comparison is always true due to limited range of data type
...
awk -f /a/git-freebsd/sys/conf/kmod_syms.awk x86bios.ko.debug export_syms | xargs -J% objcopy % x86bios.ko.debug
objcopy --only-keep-debug x86bios.ko.debug x86bios.ko.symbols
objcopy --strip-debug --add-gnu-debuglink=x86bios.ko.symbols x86bios.ko.debug x86bios.ko
в Makefile'е есть комментарий о них
Код: Выделить всё
# r190919 (simplify in/out funcs)
# x86bios.c:190: warning: comparison is always true due to limited range of data type
.if ${OSVERSION} < 800078
MAKE_ENV+= WERROR=
.endif
Если из-за них будет проблема, то можно засунуть патчик на основе r190919 в папку
files/.