History log of /freebsd-current/sys/dev/aic7xxx/aicasm/Makefile
Revision Date Author Comments
# 031beb4e 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# e47b5c3d 23-Mar-2020 Baptiste Daroussin <bapt@FreeBSD.org>

Remove unneeded dependency on libl


# eacae6dc 03-Dec-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Fix LDADD/DPADD that should be LIBADD.

Sponsored by: EMC / Isilon Storage Division


# 3bdf7758 12-Apr-2014 Warner Losh <imp@FreeBSD.org>

NO_MAN= has been deprecated in favor of MAN= for some time, go ahead
and finish the job. ncurses is now the only Makefile in the tree that
uses it since it wasn't a simple mechanical change, and will be
addressed in a future commit.


# c0159aff 27-Feb-2014 Warner Losh <imp@FreeBSD.org>

Don't complain about missing prototypes to ease bootstrap issues.


# f827d58e 04-Nov-2013 Ian Lepore <ian@FreeBSD.org>

Rework the aicasm build machinery so that it gets built along with toolchain
components instead of with the kernel and/or modules. This ensures that it
gets built with the host compiler, not the compiler in obj/... used to build
the target components (which may be a cross-compiler outputting code for a
different architecture and using header files with types and options set up
for the wrong architecture).

Reviewed by: imp


# 56e4bfe5 04-Jun-2012 Dimitry Andric <dim@FreeBSD.org>

Fix build of aicasm when CC=clang. This was due to a side-effect of the
EARLY_BUILD macro: the -Qunused-arguments flag isn't passed anymore when
building this particular program. However, with clang 3.1 and -Werror,
such unused argument warnings are flagged as errors, causing buildkernel
to fail at this stage, due to the -nostdinc flag passed during linking.
Since the -nostdinc flag isn't actually needed, just remove it.

X-MFC-With: r236528


# 58ff0f42 19-Apr-2011 Dimitry Andric <dim@FreeBSD.org>

Remove support for the Intel C Compiler from the build infrastructure.
This support has not worked for several years, and is not likely to work
again, unless Intel decides to release a native FreeBSD version of their
compiler. ;)


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# 187278ca 17-Aug-2010 Rui Paulo <rpaulo@FreeBSD.org>

For every instance of '.if ${CC} == "foo"' or '.if ${CC} != "foo"' in
Makefiles or *.mk files, use ${CC:T:Mfoo} instead, so only the basename
of the compiler command (excluding any arguments) is considered.

This allows you to use, for example, CC="/nondefault/path/clang -xxx",
and still have the various tests in bsd.*.mk identify your compiler as
clang correctly.

ICC if cases were also changed.

Submitted by: Dimitry Andric <dimitry at andric.com>


# 03bc68ca 30-Dec-2009 Ed Schouten <ed@FreeBSD.org>

Disable K&R style function definitions for WARNS=6.

Unfortunately there are two slight problems with that:

- Yacc and lex might generate code that generates warnings because of
this. Require yacc and lex to be rebuilt during bootstrap. I'm not
incrementing __FreeBSD_version here, because I assume someone else
will do this eventually.

- When running `make buildkernel', it uses share/mk from the source
treeo to build aicasm. Because aicasm also depends on lex, this would
break. Lower WARNS to 5 for now. We should just increment it to 6
again somewhere in the very far future.


# 9ceb784e 02-Jun-2009 Xin LI <delphij@FreeBSD.org>

Re-enable WARNS=6 after my universe test.


# a3f2e28d 01-Jun-2009 Xin LI <delphij@FreeBSD.org>

Revert the WARNS change for now, need some time to fix the real problem.


# 7ff1b982 01-Jun-2009 Xin LI <delphij@FreeBSD.org>

Mark as WARNS=6.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 95ec61c0 21-Nov-2005 Ruslan Ermilov <ru@FreeBSD.org>

Fix mysterious build failures (with parallel make) early in
buildkernel: provide a real but dummy name to ${DEPENDFILE}
so that the relevant exists() check in bsd.prog.mk fails and
ensures that ${GENHDRS} are built before any other objects.

MFC after: 3 days


# 358371dc 02-Aug-2005 Robert Watson <rwatson@FreeBSD.org>

Back out change accidentally committed as Makefile:1.21 -- a local
tweak to let the 6.x/7.x kernel series build on a 5.x userland.

Pointed out by: njl


# 13b203d0 02-Aug-2005 Robert Watson <rwatson@FreeBSD.org>

Modify device drivers supporting multicast addresses to lock if_addr_mtx
over iteration of their multicast address lists when synchronizing the
hardware address filter with the network stack-maintained list.

Problem reported by: Ed Maste (emaste at phaedrus dot sandvine dot ca>
MFC after: 1 week


# e653b48c 21-Dec-2004 Ruslan Ermilov <ru@FreeBSD.org>

Start the dreaded NOFOO -> NO_FOO conversion.

OK'ed by: core


# a35d8893 24-Oct-2004 Ruslan Ermilov <ru@FreeBSD.org>

For variables that are only checked with defined(), don't provide
any fake value.


# 06d6e4fc 12-Mar-2004 Tom Rhodes <trhodes@FreeBSD.org>

This are the build infrastructure changes to allow to use the
Intel C/C++ compiler (lang/icc) to build the kernel.

The icc CPUTYPE CFLAGS use icc v7 syntax, icc v8 moans about them, but
doesn't abort. They also produce CPU specific code (new instructions
of the CPU, not only CPU specific scheduling), so if you get coredumps
with signal 4 (SIGILL, illegal instruction) you've used the wrong
CPUTYPE.

Incarnations of this patch survive gcc compiles and my make universe.
I use it on my desktop.

To use it update share/mk, add
/usr/local/intel/compiler70/ia32/bin (icc v7, works)
or
/usr/local/intel_cc_80/bin (icc v8, doesn't work)
to your PATH, make sure you have a new kernel compile directory
(e.g. MYKERNEL_icc) and run
CFLAGS="-O2 -ip" CC=icc make depend
CFLAGS="-O2 -ip" CC=icc make
in it.

Don't compile with -ipo, the build infrastructure uses ld directly to
link the kernel and the modules, but -ipo needs the link step to be
performed with Intel's linker.

Problems with icc v8:
- panic: npx0 cannot be emulated on an SMP system
- UP: first start of /bin/sh results in a FP exception

Parts of this commit contains suggestions or submissions from
Marius Strobl <marius@alchemy.franken.de>.

Reviewed by: silence on -arch
Submitted by: netchild


# 47d7e8a9 05-Feb-2004 Ruslan Ermilov <ru@FreeBSD.org>

Fixed style of DPADD and LDADD assignments as per style.Makefile(5).


# 4ff10146 26-Sep-2002 Justin T. Gibbs <gibbs@FreeBSD.org>

Use inttypes.h

Upgrade assembler to allow a move immediate of 0.
This is helpful in certain macros where we can't know the value of the
immediate in advance.


# 63183d8c 31-Aug-2002 Justin T. Gibbs <gibbs@FreeBSD.org>

Update assembler syntax and assembler to allow generation of register
description tables used for diagnostic "pretty printing".


# d600c966 13-May-2002 David E. O'Brien <obrien@FreeBSD.org>

Tweak the include dirs w/o incurring extra warnings


# 39bd77be 09-May-2002 David E. O'Brien <obrien@FreeBSD.org>

Use only bits w/in /sys if at all possible.


# 49d89985 01-May-2002 Peter Wemm <peter@FreeBSD.org>

Add "CFLAGS+= -I${MAKESRCPATH}" when running under the kernel build,
otherwise #include "aicasm.h" etc do not work with gcc-3 and later.


# 7ce72dba 24-Apr-2002 Justin T. Gibbs <gibbs@FreeBSD.org>

Add macro functionality.

Staticize and allow unique naming of data structures so that more
than on sequencer program can be statically compiled into the kernel
at a time.


# 77d49b3c 10-Mar-2002 David E. O'Brien <obrien@FreeBSD.org>

Due to changes in the handling of the #line directive by GCC(cpp) 3.1,
we must now explicitly list the source directory with -I.


# 75a1da1e 13-Dec-2000 Marcel Moolenaar <marcel@FreeBSD.org>

Fix include directories for crossbuilding.

aicasm is run on the build machine and therefore needs to be
compiled and linked against the headers and libraries (resp)
of the build machine. Since normally the default include
directories are search after any specified on the command
line, make sure we don't accidentally pick up machine
dependent headers from the kernel compile directory by
specifying /usr/include first.

This solves the (cross) build problem for ia64.

Approved by: gibbs


# 32da3127 16-Sep-2000 Justin T. Gibbs <gibbs@FreeBSD.org>

Move aicasm to its own subdirectory.


# 5415a4bd 27-May-2000 David E. O'Brien <obrien@FreeBSD.org>

Use /sys/sys/*.h over /usr/include/sys.

No repsonce from: Maintainer


# c3aac50f 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 6b3daecd 17-Jan-1999 Peter Wemm <peter@FreeBSD.org>

"fix" long standing aicasm build glitch. The problem was the
reorganization in rev 1.16 of i386/include/types.h which changed
stdlib.h's use of <machine/types.h>. The problem was the -I. was causing
machine/types.h to come from the current kernel source, while stdlib.h was
coming from /usr/include. /usr/include/stdlib.h is as old as the last
'make world', the machine/types.h was as new as the current source.


# 37507c1b 27-Sep-1997 Justin T. Gibbs <gibbs@FreeBSD.org>

Add support to aicasm for "downloaded constants". These are immediate
operands that are set during seqeuncer program download instead of at
assembly time.

Convert the sequencer code to use" downloaded constants" for four run time
constants that vary depending on the board type. This frees up 4 bytes
of sequencer scratch ram space where these constants used to be stored and
also removes the additional instructions required to load their values
into the accumulator prior to using them.

Remove the REJBYTE sram variable. The host driver can just as easly
read the accumulator to get this value.

The scratch ram savings is important as the old code used to clober the
SCSICONF register on 274X cards which sits near the top of scratch ram
space. The SCSICONF register controls bus termination, and clobbering
it is not a good thing. Now we have 4 bytes to spare.

This should fix the reported problems with cards that don't have devices
attached to them failing with a stream of "Somone reset bus X" messages.

Doug Ledford determined the cause of the problem, fixes by me.


# c66dbc92 02-Sep-1997 Justin T. Gibbs <gibbs@FreeBSD.org>

Make the aic7xxx sequencer assembler compile in the kernel's object
directory. Rename (via repository copy) some files so that the potential
for future conflicts is minimized.

PR: conf/4363


# cbc7db3b 02-Apr-1997 Justin T. Gibbs <gibbs@FreeBSD.org>

CFLAGS += -I. so that building in an obj directory works.


# c5cb3888 16-Mar-1997 Justin T. Gibbs <gibbs@FreeBSD.org>

Makefile gram.y scan.l sequencer.h symbol.c symbol.h aic7xxx_asm.c:
New sequencer assembler for the aic7xxx adapters. This assembler
performs some amount of register type checking, allows bit
manipulation of symbolic constants, and generates "patch tables"
for conditionalized downloading of portions of the program.
This makes it easier to take full advantage of the different
features of the aic7xxx cards without imposing run time penalies
or being bound to the small memory footprints of the low end
cards for features like target mode.

aic7xxx.reg:
New, assembler parsed, register definitions fo the aic7xxx cards.
This was done primarily in anticipation of 7810 support which
will have a different register layout, but should be able to use
the same assembler. The kernel aic7xxx driver consumes a generated
file in the compile directory to get the definitions of the register
locations.

aic7xxx.seq:
Convert to the slighly different syntax of the new assembler.

Conditionalize SCB_PAGING, ultra, and twin features which shaves
quite a bit of space once the program is downloaded.

Add code to leave the selection hardware enabled during reconnects
that win bus arbitration. This ensures that we will rearbitrate
as soon as the bus goes free instead of delaying for a bit.

When we expect the bus to go free, perform all of the cleanup
associated with that event "up front" and enter a loop awaiting
bus free. If we see a REQ first, complain, but attempt to
continue. This will hopefully address, or at least help diagnose,
the "target didn't send identify" messages that have been reported.

Spelling corrections obtained from NetBSD.