1*01298368SAndrew Turner /* 2*01298368SAndrew Turner * Copyright (C) 2011 Andrew Turner 3*01298368SAndrew Turner * All rights reserved. 4*01298368SAndrew Turner * 5*01298368SAndrew Turner * Redistribution and use in source and binary forms, with or without 6*01298368SAndrew Turner * modification, are permitted provided that the following conditions 7*01298368SAndrew Turner * are met: 8*01298368SAndrew Turner * 1. Redistributions of source code must retain the above copyright 9*01298368SAndrew Turner * notice, this list of conditions and the following disclaimer. 10*01298368SAndrew Turner * 2. Redistributions in binary form must reproduce the above copyright 11*01298368SAndrew Turner * notice, this list of conditions and the following disclaimer in the 12*01298368SAndrew Turner * documentation and/or other materials provided with the distribution. 13*01298368SAndrew Turner * 14*01298368SAndrew Turner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*01298368SAndrew Turner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*01298368SAndrew Turner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*01298368SAndrew Turner * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*01298368SAndrew Turner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*01298368SAndrew Turner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*01298368SAndrew Turner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*01298368SAndrew Turner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*01298368SAndrew Turner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*01298368SAndrew Turner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*01298368SAndrew Turner * SUCH DAMAGE. 25*01298368SAndrew Turner * 26*01298368SAndrew Turner */ 27*01298368SAndrew Turner 28*01298368SAndrew Turner /* 29*01298368SAndrew Turner * Provide an implementation of __aeabi_unwind_cpp_pr{0,1,2}. These are 30*01298368SAndrew Turner * required by libc but are implemented in libgcc_eh.a which we don't link 31*01298368SAndrew Turner * against. The libgcc_eh.a version will be called so we call abort to 32*01298368SAndrew Turner * check this. 33*01298368SAndrew Turner */ 34*01298368SAndrew Turner 35*01298368SAndrew Turner #include <sys/cdefs.h> 36*01298368SAndrew Turner __FBSDID("$FreeBSD$"); 37*01298368SAndrew Turner 38*01298368SAndrew Turner #include <stdlib.h> 39*01298368SAndrew Turner 40*01298368SAndrew Turner void __aeabi_unwind_cpp_pr0(void) __hidden; 41*01298368SAndrew Turner void __aeabi_unwind_cpp_pr1(void) __hidden; 42*01298368SAndrew Turner void __aeabi_unwind_cpp_pr2(void) __hidden; 43*01298368SAndrew Turner 44*01298368SAndrew Turner void 45*01298368SAndrew Turner __aeabi_unwind_cpp_pr0(void) 46*01298368SAndrew Turner { 47*01298368SAndrew Turner abort(); 48*01298368SAndrew Turner } 49*01298368SAndrew Turner 50*01298368SAndrew Turner void 51*01298368SAndrew Turner __aeabi_unwind_cpp_pr1(void) 52*01298368SAndrew Turner { 53*01298368SAndrew Turner abort(); 54*01298368SAndrew Turner } 55*01298368SAndrew Turner 56*01298368SAndrew Turner void 57*01298368SAndrew Turner __aeabi_unwind_cpp_pr2(void) 58*01298368SAndrew Turner { 59*01298368SAndrew Turner abort(); 60*01298368SAndrew Turner } 61*01298368SAndrew Turner 62