From bbd81cb35ecdda0cdfd8afb1a742ac77c15dfeca Mon Sep 17 00:00:00 2001 From: jmmv Date: Sat, 17 Jul 2010 19:25:26 +0000 Subject: [PATCH] Convert the csu tests to atf. Initial work from the GSoC 2008 project by Lukasz Strzygowski. --- tests/lib/Makefile | 4 +- tests/lib/csu/Makefile | 19 +++++++ tests/lib/csu/arch/alpha/initfini_asm.S | 48 ++++++++++++++++ tests/lib/csu/arch/arm/initfini_asm.S | 42 ++++++++++++++ tests/lib/csu/arch/hppa/initfini_asm.S | 44 +++++++++++++++ tests/lib/csu/arch/i386/initfini_asm.S | 42 ++++++++++++++ tests/lib/csu/arch/m68k/initfini_asm.S | 42 ++++++++++++++ tests/lib/csu/arch/mips/initfini_asm.S | 56 ++++++++++++++++++ tests/lib/csu/arch/powerpc/initfini_asm.S | 42 ++++++++++++++ tests/lib/csu/arch/sh3/initfini_asm.S | 58 +++++++++++++++++++ tests/lib/csu/arch/sparc/initfini_asm.S | 44 +++++++++++++++ tests/lib/csu/arch/sparc64/initfini_asm.S | 44 +++++++++++++++ tests/lib/csu/arch/vax/initfini_asm.S | 42 ++++++++++++++ tests/lib/csu/arch/x86_64/initfini_asm.S | 42 ++++++++++++++ tests/lib/csu/h_initfini.c | 69 +++++++++++++++++++++++ tests/lib/csu/t_crt0.sh | 48 ++++++++++++++++ 16 files changed, 684 insertions(+), 2 deletions(-) create mode 100644 tests/lib/csu/Makefile create mode 100644 tests/lib/csu/arch/alpha/initfini_asm.S create mode 100644 tests/lib/csu/arch/arm/initfini_asm.S create mode 100644 tests/lib/csu/arch/hppa/initfini_asm.S create mode 100644 tests/lib/csu/arch/i386/initfini_asm.S create mode 100644 tests/lib/csu/arch/m68k/initfini_asm.S create mode 100644 tests/lib/csu/arch/mips/initfini_asm.S create mode 100644 tests/lib/csu/arch/powerpc/initfini_asm.S create mode 100644 tests/lib/csu/arch/sh3/initfini_asm.S create mode 100644 tests/lib/csu/arch/sparc/initfini_asm.S create mode 100644 tests/lib/csu/arch/sparc64/initfini_asm.S create mode 100644 tests/lib/csu/arch/vax/initfini_asm.S create mode 100644 tests/lib/csu/arch/x86_64/initfini_asm.S create mode 100644 tests/lib/csu/h_initfini.c create mode 100644 tests/lib/csu/t_crt0.sh diff --git a/tests/lib/Makefile b/tests/lib/Makefile index f05056109948..bcd82b15763e 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 -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 000000000000..4542d0e26ee6 --- /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 + +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 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 000000000000..c065462a8e85 --- /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 + + .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 000000000000..a4d464714230 --- /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 + + .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 000000000000..22b7789c7c35 --- /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 + + .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 000000000000..cb7ba3245e81 --- /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 + + .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 000000000000..eede1347a783 --- /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 + + .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 000000000000..88ecf1c9cb35 --- /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 + + .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 000000000000..51de6f334160 --- /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 + + .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 000000000000..2e9bf8c04a8e --- /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 + + .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 000000000000..4702743364f9 --- /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 + + .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 000000000000..4702743364f9 --- /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 + + .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 000000000000..5c80a947cbbd --- /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 + + .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 000000000000..8035323c0e49 --- /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 + + .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 000000000000..f398c2e7339e --- /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 +__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 + +#include +#include + +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 000000000000..2b4d8934fe2d --- /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 <