diff options
| author | jmmv <jmmv@NetBSD.org> | 2010-07-17 19:25:26 +0000 |
|---|---|---|
| committer | jmmv <jmmv@NetBSD.org> | 2010-07-17 19:25:26 +0000 |
| commit | bbd81cb35ecdda0cdfd8afb1a742ac77c15dfeca (patch) | |
| tree | 3a5678bab93dbbfd0cc96fff675e5f0d7d9e1a7f /tests | |
| parent | d78cceb1e34c219648b98996dbebc5468694cf1c (diff) | |
Convert the csu tests to atf.
Initial work from the GSoC 2008 project by Lukasz Strzygowski.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/lib/Makefile | 4 | ||||
| -rw-r--r-- | tests/lib/csu/Makefile | 19 | ||||
| -rw-r--r-- | tests/lib/csu/arch/alpha/initfini_asm.S | 48 | ||||
| -rw-r--r-- | tests/lib/csu/arch/arm/initfini_asm.S | 42 | ||||
| -rw-r--r-- | tests/lib/csu/arch/hppa/initfini_asm.S | 44 | ||||
| -rw-r--r-- | tests/lib/csu/arch/i386/initfini_asm.S | 42 | ||||
| -rw-r--r-- | tests/lib/csu/arch/m68k/initfini_asm.S | 42 | ||||
| -rw-r--r-- | tests/lib/csu/arch/mips/initfini_asm.S | 56 | ||||
| -rw-r--r-- | tests/lib/csu/arch/powerpc/initfini_asm.S | 42 | ||||
| -rw-r--r-- | tests/lib/csu/arch/sh3/initfini_asm.S | 58 | ||||
| -rw-r--r-- | tests/lib/csu/arch/sparc/initfini_asm.S | 44 | ||||
| -rw-r--r-- | tests/lib/csu/arch/sparc64/initfini_asm.S | 44 | ||||
| -rw-r--r-- | tests/lib/csu/arch/vax/initfini_asm.S | 42 | ||||
| -rw-r--r-- | tests/lib/csu/arch/x86_64/initfini_asm.S | 42 | ||||
| -rw-r--r-- | tests/lib/csu/h_initfini.c | 69 | ||||
| -rw-r--r-- | tests/lib/csu/t_crt0.sh | 48 |
16 files changed, 684 insertions, 2 deletions
diff --git a/tests/lib/Makefile b/tests/lib/Makefile index f0505610994..bcd82b15763 100644 --- a/tests/lib/Makefile +++ b/tests/lib/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.6 2010/07/16 15:42:53 jmmv Exp $ +# $NetBSD: Makefile,v 1.7 2010/07/17 19:25:26 jmmv Exp $ .include <bsd.own.mk> -TESTS_SUBDIRS= libc libevent libposix libprop librt libpthread libutil \ +TESTS_SUBDIRS= csu libc libevent libposix libprop librt libpthread libutil \ semaphore .if (${MKSKEY} != "no") diff --git a/tests/lib/csu/Makefile b/tests/lib/csu/Makefile new file mode 100644 index 00000000000..4542d0e26ee --- /dev/null +++ b/tests/lib/csu/Makefile @@ -0,0 +1,19 @@ +# $NetBSD: Makefile,v 1.1 2010/07/17 19:25:27 jmmv Exp $ + +NOMAN= # defined + +.include <bsd.own.mk> + +TESTSDIR= ${TESTSBASE}/lib/csu + +.if exists(arch/${MACHINE_CPU}/initfini_asm.S) +TESTS_SH= t_crt0 + +BINDIR= ${TESTSDIR} +PROG= h_initfini +SRCS= h_initfini.c initfini_asm.S +WARNS?= 1 +.PATH: ${.CURDIR}/arch/${MACHINE_CPU} +.endif + +.include <bsd.test.mk> diff --git a/tests/lib/csu/arch/alpha/initfini_asm.S b/tests/lib/csu/arch/alpha/initfini_asm.S new file mode 100644 index 00000000000..c065462a8e8 --- /dev/null +++ b/tests/lib/csu/arch/alpha/initfini_asm.S @@ -0,0 +1,48 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:27 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Jason R. Thorpe, July 16, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + br ra, 1f +1: LDGP(ra) + jsr ra, i_am_init + .align 3 + .previous + + .section .fini, "ax", @progbits + br ra, 1f +1: LDGP(ra) + jsr ra, i_am_fini + .align 3 + .previous diff --git a/tests/lib/csu/arch/arm/initfini_asm.S b/tests/lib/csu/arch/arm/initfini_asm.S new file mode 100644 index 00000000000..a4d46471423 --- /dev/null +++ b/tests/lib/csu/arch/arm/initfini_asm.S @@ -0,0 +1,42 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:27 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Matt A. Thomas, July 16, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", "progbits" + bl _C_LABEL(i_am_init) + .previous + + .section .fini, "ax", "progbits" + bl _C_LABEL(i_am_fini) + .previous diff --git a/tests/lib/csu/arch/hppa/initfini_asm.S b/tests/lib/csu/arch/hppa/initfini_asm.S new file mode 100644 index 00000000000..22b7789c7c3 --- /dev/null +++ b/tests/lib/csu/arch/hppa/initfini_asm.S @@ -0,0 +1,44 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:27 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Nick Hudson, May 18, 2004. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + bl i_am_init, %rp + nop + .previous + + .section .fini, "ax", @progbits + bl i_am_fini, %rp + nop + .previous diff --git a/tests/lib/csu/arch/i386/initfini_asm.S b/tests/lib/csu/arch/i386/initfini_asm.S new file mode 100644 index 00000000000..cb7ba3245e8 --- /dev/null +++ b/tests/lib/csu/arch/i386/initfini_asm.S @@ -0,0 +1,42 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:27 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Jason R. Thorpe, July 16, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + call _C_LABEL(i_am_init) + .previous + + .section .fini, "ax", @progbits + call _C_LABEL(i_am_fini) + .previous diff --git a/tests/lib/csu/arch/m68k/initfini_asm.S b/tests/lib/csu/arch/m68k/initfini_asm.S new file mode 100644 index 00000000000..eede1347a78 --- /dev/null +++ b/tests/lib/csu/arch/m68k/initfini_asm.S @@ -0,0 +1,42 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:27 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Klaus Klein, October 14, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + jsr _C_LABEL(i_am_init) + .previous + + .section .fini, "ax", @progbits + jsr _C_LABEL(i_am_fini) + .previous diff --git a/tests/lib/csu/arch/mips/initfini_asm.S b/tests/lib/csu/arch/mips/initfini_asm.S new file mode 100644 index 00000000000..88ecf1c9cb3 --- /dev/null +++ b/tests/lib/csu/arch/mips/initfini_asm.S @@ -0,0 +1,56 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:28 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Jason R. Thorpe, July 16, 2001. + */ + +#include <mips/asm.h> + + .abicalls + + .section .init, "ax", @progbits + .set noreorder + la t9, 1f +1: .cpload t9 + .set reorder + .cprestore + la t9, i_am_init + jal t9 + .previous + + .section .fini, "ax", @progbits + .set noreorder + la t9, 2f +2: .cpload t9 + .set reorder + .cprestore + la t9, i_am_fini + jal t9 + .previous diff --git a/tests/lib/csu/arch/powerpc/initfini_asm.S b/tests/lib/csu/arch/powerpc/initfini_asm.S new file mode 100644 index 00000000000..51de6f33416 --- /dev/null +++ b/tests/lib/csu/arch/powerpc/initfini_asm.S @@ -0,0 +1,42 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:28 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Tsubai Masanari, July 17, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + bl i_am_init + .previous + + .section .fini, "ax", @progbits + bl i_am_fini + .previous diff --git a/tests/lib/csu/arch/sh3/initfini_asm.S b/tests/lib/csu/arch/sh3/initfini_asm.S new file mode 100644 index 00000000000..2e9bf8c04a8 --- /dev/null +++ b/tests/lib/csu/arch/sh3/initfini_asm.S @@ -0,0 +1,58 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:28 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Tsubai Masanari, July 23, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + mov.l Li_am_init, r0 + jsr @r0 + nop + bra 1f + nop + .align 2 +Li_am_init: + .long _C_LABEL(i_am_init) +1: + .previous + + .section .fini, "ax", @progbits + mov.l Li_am_fini, r0 + jsr @r0 + nop + bra 1f + nop + .align 2 +Li_am_fini: + .long _C_LABEL(i_am_fini) +1: + .previous diff --git a/tests/lib/csu/arch/sparc/initfini_asm.S b/tests/lib/csu/arch/sparc/initfini_asm.S new file mode 100644 index 00000000000..4702743364f --- /dev/null +++ b/tests/lib/csu/arch/sparc/initfini_asm.S @@ -0,0 +1,44 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:28 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * matthew green, July 17, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + call _C_LABEL(i_am_init) + nop + .previous + + .section .fini, "ax", @progbits + call _C_LABEL(i_am_fini) + nop + .previous diff --git a/tests/lib/csu/arch/sparc64/initfini_asm.S b/tests/lib/csu/arch/sparc64/initfini_asm.S new file mode 100644 index 00000000000..4702743364f --- /dev/null +++ b/tests/lib/csu/arch/sparc64/initfini_asm.S @@ -0,0 +1,44 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:28 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * matthew green, July 17, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + call _C_LABEL(i_am_init) + nop + .previous + + .section .fini, "ax", @progbits + call _C_LABEL(i_am_fini) + nop + .previous diff --git a/tests/lib/csu/arch/vax/initfini_asm.S b/tests/lib/csu/arch/vax/initfini_asm.S new file mode 100644 index 00000000000..5c80a947cbb --- /dev/null +++ b/tests/lib/csu/arch/vax/initfini_asm.S @@ -0,0 +1,42 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:28 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Matt A. Thomas, July 16, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + calls $0,_C_LABEL(i_am_init) + .previous + + .section .fini, "ax", @progbits + calls $0,_C_LABEL(i_am_fini) + .previous diff --git a/tests/lib/csu/arch/x86_64/initfini_asm.S b/tests/lib/csu/arch/x86_64/initfini_asm.S new file mode 100644 index 00000000000..8035323c0e4 --- /dev/null +++ b/tests/lib/csu/arch/x86_64/initfini_asm.S @@ -0,0 +1,42 @@ +/* $NetBSD: initfini_asm.S,v 1.1 2010/07/17 19:25:28 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Jason R. Thorpe, July 16, 2001. + */ + +#include <machine/asm.h> + + .section .init, "ax", @progbits + call _C_LABEL(i_am_init) + .previous + + .section .fini, "ax", @progbits + call _C_LABEL(i_am_fini) + .previous diff --git a/tests/lib/csu/h_initfini.c b/tests/lib/csu/h_initfini.c new file mode 100644 index 00000000000..f398c2e7339 --- /dev/null +++ b/tests/lib/csu/h_initfini.c @@ -0,0 +1,69 @@ +/* $NetBSD: h_initfini.c,v 1.1 2010/07/17 19:25:27 jmmv Exp $ */ + +/* + * Copyright (c) 2008 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * This file placed in the public domain. + * Jason R. Thorpe, July 16, 2001. + */ + +#include <sys/cdefs.h> +__COPYRIGHT("@(#) Copyright (c) 2008\ + The NetBSD Foundation, inc. All rights reserved."); +__RCSID("$NetBSD: h_initfini.c,v 1.1 2010/07/17 19:25:27 jmmv Exp $"); + +#include <sys/types.h> + +#include <stdlib.h> +#include <unistd.h> + +void i_am_init(void); +void i_am_fini(void); + +int main(int, char *[]); + +#define WRITE(str) \ + write(STDOUT_FILENO, str, sizeof(str) - 1) + +int +main(int argc, char *argv[]) +{ + WRITE("I am main.\n"); + exit(0); +} + +void +i_am_init(void) +{ + WRITE("I am init.\n"); +} + +void +i_am_fini(void) +{ + WRITE("I am fini.\n"); +} diff --git a/tests/lib/csu/t_crt0.sh b/tests/lib/csu/t_crt0.sh new file mode 100644 index 00000000000..2b4d8934fe2 --- /dev/null +++ b/tests/lib/csu/t_crt0.sh @@ -0,0 +1,48 @@ +# $NetBSD: t_crt0.sh,v 1.1 2010/07/17 19:25:27 jmmv Exp $ +# +# Copyright (c) 2008 The NetBSD Foundation, Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +atf_test_case initfini +initfini_head() +{ + atf_set "descr" "Checks support for init/fini sections" + atf_set "use.fs" "true" +} +initfini_body() +{ + cat >expout <<EOF +I am init. +I am main. +I am fini. +EOF + + atf_check -o file:expout "$(atf_get_srcdir)/h_initfini" +} + +atf_init_test_cases() +{ + atf_add_test_case initfini +} |
