1 /* $Id: ccconfig.h,v 1.3 2014/10/02 07:45:52 ragge Exp $ */ 2 /* 3 * Escrit per Antoine Leca pel projecte PCC, 2011-03. 4 * Copyright (C) 2011 Anders Magnusson (ragge@ludd.luth.se). 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 /* 29 * Various settings that controls how the C compiler works. 30 * 31 * MINIX (http://www.minix3.org), both Classic a.out=PC/IX and ELF 32 */ 33 34 #ifndef LIBDIR 35 #ifdef LIBEXECDIR 36 #define LIBDIR LIBEXECDIR "../lib/" 37 #else 38 #define LIBDIR "/usr/lib/" 39 #endif 40 #endif 41 42 #ifdef ELFABI 43 /* common cpp predefines */ 44 #define CPPADD { "-D__minix", "-D__ELF__", NULL } 45 46 /* linker stuff */ 47 #define STARTLABEL "_start" 48 #define CRT0FILE LIBDIR "crt1.o" 49 #define CRT0FILE_PROFILE LIBDIR "gcrt1.o" 50 #define LIBCLIBS { "-lc", "-lpcc", NULL } 51 52 #define STARTFILES { LIBDIR "crti.o", /*LIBDIR "crtbegin.o",*/ NULL } 53 #define ENDFILES { /*LIBDIR "crtend.o",*/ LIBDIR "crtn.o", NULL } 54 55 #define STARTFILES_S { LIBDIR "crti.o", /*LIBDIR "crtbeginS.o",*/ NULL } 56 #define ENDFILES_S { /*LIBDIR "crtendS.o",*/ LIBDIR "crtn.o", NULL } 57 58 #elif defined(AOUTABI) 59 60 /* common cpp predefines */ 61 #define CPPADD { "-D__minix", NULL } 62 63 /* linker stuff */ 64 #define STARTLABEL "crtso" 65 #define CRT0FILE LIBDIR "crtso.o" 66 /* #define CRT0FILE_PROFILE "/usr/lib/pcc/gcrtso.o" */ 67 #define LIBCLIBS { "-L" LIBDIR "pcc", \ 68 "-lc", "-lpcc", "-lend", NULL } 69 #define noSTARTFILES { LIBDIR "crti.o", LIBDIR "crtbegin.o", NULL } 70 #define noENDFILES { LIBDIR "crtend.o", LIBDIR "crtn.o", NULL } 71 72 #else 73 #error defines for ABI missing 74 #endif 75 76 #if defined(mach_i386) 77 #define CPPMDADD { "-D__i386", \ 78 "-D_EM_WSIZE=4", "-D_EM_PSIZE=4", "-D_EM_LSIZE=4", \ 79 "-D_EM_SSIZE=2", "-D_EM_FSIZE=4", "-D_EM_DSIZE=8", \ 80 NULL, } 81 #else 82 #define CPPMDADD { "-D__i86", \ 83 "-D_EM_WSIZE=2", "-D_EM_PSIZE=2", "-D_EM_LSIZE=4", \ 84 "-D_EM_SSIZE=2", "-D_EM_FSIZE=4", "-D_EM_DSIZE=8", \ 85 NULL, } 86 #endif 87