1331722Seadler/* 2245655Sandrew * Copyright (C) 2011 Andrew Turner 3245655Sandrew * All rights reserved. 4245655Sandrew * 5245655Sandrew * Redistribution and use in source and binary forms, with or without 6245655Sandrew * modification, are permitted provided that the following conditions 7245655Sandrew * are met: 8245655Sandrew * 1. Redistributions of source code must retain the above copyright 9245655Sandrew * notice, this list of conditions and the following disclaimer. 10245655Sandrew * 2. Redistributions in binary form must reproduce the above copyright 11245655Sandrew * notice, this list of conditions and the following disclaimer in the 12245655Sandrew * documentation and/or other materials provided with the distribution. 13245655Sandrew * 14245655Sandrew * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15245655Sandrew * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16245655Sandrew * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17245655Sandrew * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18245655Sandrew * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19245655Sandrew * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20245655Sandrew * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21245655Sandrew * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22245655Sandrew * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23245655Sandrew * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24245655Sandrew * SUCH DAMAGE. 25245655Sandrew * 26245655Sandrew */ 27245655Sandrew 28245655Sandrew/* 29245655Sandrew * Provide an implementation of __aeabi_unwind_cpp_pr{0,1,2}. These are 30245655Sandrew * required by libc but are implemented in libgcc_eh.a which we don't link 31245655Sandrew * against. The libgcc_eh.a version will be called so we call abort to 32245655Sandrew * check this. 33245655Sandrew */ 34245655Sandrew 35245655Sandrew#include <sys/cdefs.h> 36245655Sandrew__FBSDID("$FreeBSD$"); 37245655Sandrew 38245655Sandrew#include <stdlib.h> 39245655Sandrew 40245655Sandrewvoid __aeabi_unwind_cpp_pr0(void) __hidden; 41245655Sandrewvoid __aeabi_unwind_cpp_pr1(void) __hidden; 42245655Sandrewvoid __aeabi_unwind_cpp_pr2(void) __hidden; 43245655Sandrew 44245655Sandrewvoid 45245655Sandrew__aeabi_unwind_cpp_pr0(void) 46245655Sandrew{ 47245655Sandrew abort(); 48245655Sandrew} 49245655Sandrew 50245655Sandrewvoid 51245655Sandrew__aeabi_unwind_cpp_pr1(void) 52245655Sandrew{ 53245655Sandrew abort(); 54245655Sandrew} 55245655Sandrew 56245655Sandrewvoid 57245655Sandrew__aeabi_unwind_cpp_pr2(void) 58245655Sandrew{ 59245655Sandrew abort(); 60245655Sandrew} 61245655Sandrew 62