mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-01 03:50:28 +08:00
2006-12-08 Sa Liu <saliu@de.ibm.com>
* spu/exit.c (libgloss_exit): Rename from this .. (_exit): .. to this. Overhaul. (exit): Remove. * spu/crt0.S, spu/crti.S, spu/crtn.S: New files. * spu/crt0.C, spu/init.c: Remove. * spu/configure.in (AC_INIT): Check for crt0.S, not crt0.C. * spu/configure: Regenerate. * spu/Makefile.in (crti.o, crtn.o, crt1.o, crt2.o): New targets. (OBJS): Remove init.o. (CRTOBJS): New. (OUTPUTS): Add $(CRTOBJS).
This commit is contained in:
parent
da6b5ab61f
commit
b81d0f0ec6
@ -1,4 +1,18 @@
|
||||
2006-11-27 Jeff Johnston <jjohnstn@redhat.com>
|
||||
2006-12-08 Sa Liu <saliu@de.ibm.com>
|
||||
|
||||
* spu/exit.c (libgloss_exit): Rename from this ..
|
||||
(_exit): .. to this. Overhaul.
|
||||
(exit): Remove.
|
||||
* spu/crt0.S, spu/crti.S, spu/crtn.S: New files.
|
||||
* spu/crt0.C, spu/init.c: Remove.
|
||||
* spu/configure.in (AC_INIT): Check for crt0.S, not crt0.C.
|
||||
* spu/configure: Regenerate.
|
||||
* spu/Makefile.in (crti.o, crtn.o, crt1.o, crt2.o): New targets.
|
||||
(OBJS): Remove init.o.
|
||||
(CRTOBJS): New.
|
||||
(OUTPUTS): Add $(CRTOBJS).
|
||||
|
||||
I2006-11-27 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* mips/crt0.S: Fix preprocessor statements from previous patch
|
||||
to be ANSI.
|
||||
|
@ -54,7 +54,7 @@ OBJDUMP = `t='$(program_transform_name)'; echo objdump | sed -e $$t`
|
||||
OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t`
|
||||
|
||||
# object files needed
|
||||
OBJS = syscalls.o init.o exit.o sbrk.o close.o fstat.o getpid.o isatty.o \
|
||||
OBJS = syscalls.o exit.o sbrk.o close.o fstat.o getpid.o isatty.o \
|
||||
kill.o lseek.o open.o read.o unlink.o write.o stat.o
|
||||
|
||||
# Object files specific to particular targets.
|
||||
@ -63,7 +63,8 @@ EVALOBJS = ${OBJS}
|
||||
GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
|
||||
then echo -L${objroot}/../gcc ; fi`
|
||||
|
||||
OUTPUTS = libgloss.a crt0.o
|
||||
CRTOBJS = crti.o crtn.o crt1.o crt2.o
|
||||
OUTPUTS = libgloss.a $(CRTOBJS)
|
||||
|
||||
NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi` -ffunction-sections -fdata-sections
|
||||
NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/ -L${objroot}/newlib/; fi`
|
||||
@ -111,6 +112,19 @@ libgloss.a: $(EVALOBJS)
|
||||
${AR} ${ARFLAGS} $@ $(EVALOBJS)
|
||||
${RANLIB} $@
|
||||
|
||||
# C Runtime Library startup code.
|
||||
crti.o:
|
||||
$(CC) $(srcdir)/crti.S -c -o crti.o
|
||||
|
||||
crtn.o:
|
||||
$(CC) $(srcdir)/crtn.S -c -o crtn.o
|
||||
|
||||
crt1.o:
|
||||
$(CC) $(srcdir)/crt0.S -c -o crt1.o
|
||||
|
||||
crt2.o:
|
||||
$(CC) $(srcdir)/crt0.S -D_STD_MAIN -c -o crt2.o
|
||||
|
||||
doc:
|
||||
|
||||
clean mostlyclean:
|
||||
|
2
libgloss/spu/configure
vendored
2
libgloss/spu/configure
vendored
@ -271,7 +271,7 @@ PACKAGE_VERSION=
|
||||
PACKAGE_STRING=
|
||||
PACKAGE_BUGREPORT=
|
||||
|
||||
ac_unique_file="crt0.c"
|
||||
ac_unique_file="crt0.S"
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC am__leading_dot DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AS AR LD RANLIB ac_ct_RANLIB CCAS CCASFLAGS host_makefile_frag_path LIBOBJS LTLIBOBJS'
|
||||
ac_subst_files='host_makefile_frag'
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.59)dnl
|
||||
AC_INIT(crt0.c)
|
||||
AC_INIT(crt0.S)
|
||||
|
||||
if test "$srcdir" = "." ; then
|
||||
if test "${with_target_subdir}" != "." ; then
|
||||
|
168
libgloss/spu/crt0.S
Normal file
168
libgloss/spu/crt0.S
Normal file
@ -0,0 +1,168 @@
|
||||
/* (C) Copyright IBM Corp. 2005, 2006
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* 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.
|
||||
* Neither the name of IBM nor the names of its contributors may be
|
||||
used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
|
||||
*/
|
||||
|
||||
/* crt0.S - entry function for C Runtime.
|
||||
*
|
||||
* With _STD_MAIN switch, the crt0.S will be compiled to crt2.o.
|
||||
* The crt2.o sets up a C99-style interface for the SPU application's
|
||||
* main() function, including a local copy of argv strings.
|
||||
*
|
||||
* The number of argument strings is passed in R3. The size and EA
|
||||
* location of the argument vector region is passed in R4. Once the
|
||||
* argv region is copied to the highest range of LS, and $SP is set
|
||||
* just below it.
|
||||
*
|
||||
* Without _STD_MAIN, the crt0.S is compiled to crt1.o.
|
||||
* The crt1.o prepares the entry for an SPU module. The main() function
|
||||
* is called with different parameter list: spu_id, param and env
|
||||
* are passed by R3, R4 and R5 respectively.
|
||||
*/
|
||||
|
||||
#ifdef _STD_MAIN
|
||||
#define MFC_TAG_UPDATE_ALL 2
|
||||
#define MFC_GET_CMD 0x40
|
||||
#define TAGID 0
|
||||
#define TAGMASK 1
|
||||
#endif
|
||||
|
||||
.text
|
||||
.global _start
|
||||
.type _start, @function
|
||||
|
||||
_start:
|
||||
#ifdef _STD_MAIN
|
||||
/*
|
||||
* Copy the argument vector region from EA to LS. The DMA
|
||||
* parameters are passed in R4:
|
||||
*
|
||||
* +-------+-------+-------+-------+
|
||||
* R4 | LS | EA-HI | EA-LO | SIZE |
|
||||
* +-------+-------+-------+-------+
|
||||
* word 0 1 2 3
|
||||
*
|
||||
* By the end of this sequence, the prefered slot (word 0) of
|
||||
* R4 will contain the LS offset of argv region, which also
|
||||
* serves as the base offset for $SP.
|
||||
*/
|
||||
wrch $MFC_LSA, $4
|
||||
rotqbyi $4, $4, 4
|
||||
wrch $MFC_EAH, $4
|
||||
rotqbyi $4, $4, 4
|
||||
wrch $MFC_EAL, $4
|
||||
rotqbyi $4, $4, 4
|
||||
wrch $MFC_Size, $4
|
||||
rotqbyi $4, $4, 4
|
||||
il $LR, TAGID
|
||||
wrch $MFC_TagID, $LR
|
||||
|
||||
/* Issue MFC_GET_CMD, then wait for transfer of argument
|
||||
* vector region to complete.
|
||||
*/
|
||||
il $LR, MFC_GET_CMD
|
||||
wrch $MFC_Cmd, $LR
|
||||
il $LR, TAGMASK
|
||||
wrch $MFC_WrTagMask, $LR
|
||||
il $LR, MFC_TAG_UPDATE_ALL
|
||||
wrch $MFC_WrTagUpdate, $LR
|
||||
rdch $LR, $MFC_RdTagStat
|
||||
#endif
|
||||
|
||||
/* Save parameter list of main function to the non-volatile
|
||||
* registers. spu_thread module has three parameters, while
|
||||
* spulet only has two.
|
||||
*/
|
||||
ori $80, $3, 0
|
||||
ori $81, $4, 0
|
||||
#ifndef _STD_MAIN
|
||||
ori $82, $5, 0
|
||||
#endif
|
||||
|
||||
/* The Link Register is initialized to NULL.
|
||||
*/
|
||||
il $LR, 0
|
||||
|
||||
#ifdef _STD_MAIN
|
||||
/* For spulet, initialize stack pointer just below the argv region.
|
||||
*/
|
||||
ai $SP,$4,-16
|
||||
#else
|
||||
/* For spe_thread module, the stack pointer is initialized
|
||||
* below the area where __stack points to.
|
||||
*/
|
||||
ila $SP,__stack
|
||||
#endif
|
||||
/* Initialize back chain to NULL.
|
||||
*/
|
||||
stqd $LR,0($SP)
|
||||
|
||||
/* Allocate 2 slots for stack frame.
|
||||
*/
|
||||
stqd $SP,-32($SP)
|
||||
ai $SP,$SP,-32
|
||||
|
||||
/* Save the Link Register in Link Register Save Area.
|
||||
*/
|
||||
stqd $LR,16($SP)
|
||||
|
||||
/* Calculate stack size.
|
||||
*/
|
||||
ila $3,_end
|
||||
sf $3,$3,$SP
|
||||
|
||||
/* The BE Linux ABI passes the stack size in $2, or use
|
||||
* the default if $2 == 0.
|
||||
*/
|
||||
rotqbyi $4,$2,12
|
||||
ceqi $5,$4,0
|
||||
selb $3,$4,$3,$5
|
||||
fsmbi $4,3840
|
||||
selb $SP,$SP,$3,$4
|
||||
|
||||
/* Call the _init function.
|
||||
*/
|
||||
brsl $LR, _init
|
||||
|
||||
/* Call the _fini function at exit time.
|
||||
*/
|
||||
ila $3, _fini
|
||||
brsl $LR, atexit
|
||||
|
||||
ori $3,$80,0
|
||||
ori $4,$81,0
|
||||
#ifndef _STD_MAIN
|
||||
ori $5,$82,0
|
||||
#endif
|
||||
|
||||
/* Call the programs main.
|
||||
*/
|
||||
brsl $LR, main
|
||||
|
||||
/* Call exit.
|
||||
*/
|
||||
brsl $LR, exit
|
||||
|
66
libgloss/spu/crti.S
Normal file
66
libgloss/spu/crti.S
Normal file
@ -0,0 +1,66 @@
|
||||
# (C) Copyright IBM Corp. 2005, 2006
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * 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.
|
||||
# * Neither the name of IBM nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software without
|
||||
# specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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 just make a stack frame for the contents of the .fini and
|
||||
# .init sections. Users may put any desired instructions in those
|
||||
# sections.
|
||||
|
||||
# Note - this macro is complimented by the FUNC_END macro
|
||||
# in crtn.S. If you change this macro you must also change
|
||||
# that macro match.
|
||||
.macro FUNC_START
|
||||
# Create a stack frame with two slots: LR and BC
|
||||
# The .init and .fini section don't change the call-preserved
|
||||
# registes, therefore no need to save them.
|
||||
stqd $lr, 16($sp)
|
||||
stqd $sp, -32($sp)
|
||||
ai $sp, $sp, -32
|
||||
.endm
|
||||
|
||||
.file "crti.S"
|
||||
|
||||
.section ".init"
|
||||
.align 2
|
||||
|
||||
# To make sure the address of _init is not zero, because
|
||||
# the default linker entry point is 0.
|
||||
nop
|
||||
|
||||
.global _init
|
||||
.type _init, @function
|
||||
_init:
|
||||
FUNC_START
|
||||
|
||||
|
||||
.section ".fini"
|
||||
.align 2
|
||||
.global _fini
|
||||
.type _fini, @function
|
||||
_fini:
|
||||
FUNC_START
|
||||
|
56
libgloss/spu/crtn.S
Normal file
56
libgloss/spu/crtn.S
Normal file
@ -0,0 +1,56 @@
|
||||
# (C) Copyright IBM Corp. 2005, 2006
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * 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.
|
||||
# * Neither the name of IBM nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software without
|
||||
# specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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 just makes sure that the .fini and .init sections do in
|
||||
# fact return. Users may put any desired instructions in those sections.
|
||||
# This file is the last thing linked into any executable.
|
||||
|
||||
# Note - this macro is complimented by the FUNC_START macro
|
||||
# in crti.S. If you change this macro you must also change
|
||||
# that macro match.
|
||||
#
|
||||
# Note - we do not try any fancy optimisations of the return
|
||||
# sequences here, it is just not worth it. Instead keep things
|
||||
# simple. The link register is restored and then the correct
|
||||
# function return instruction is performed.
|
||||
.macro FUNC_END
|
||||
ai $sp, $sp, 32
|
||||
lqd $lr, 16($sp)
|
||||
bi $lr
|
||||
.endm
|
||||
.file "crtn.S"
|
||||
|
||||
.section ".init"
|
||||
|
||||
FUNC_END
|
||||
|
||||
.section ".fini"
|
||||
|
||||
FUNC_END
|
||||
|
||||
# end of crtn.S
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
(C) Copyright IBM Corp. 2005, 2006
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* 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.
|
||||
* Neither the name of IBM nor the names of its contributors may be
|
||||
used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
|
||||
|
||||
Author: Andreas Neukoetter (ti95neuk@de.ibm.com)
|
||||
*/
|
||||
|
||||
void __attribute__ (( destructor )) libgloss_exit( void )
|
||||
{
|
||||
/* we don't need any cleanup on the SPE ... yet */
|
||||
/* DEBUG HERE */
|
||||
}
|
||||
|
||||
void exit( int status )
|
||||
{
|
||||
/* handle atexit, etc here */
|
||||
_exit( status );
|
||||
}
|
||||
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
(C) Copyright IBM Corp. 2005, 2006
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* 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.
|
||||
* Neither the name of IBM nor the names of its contributors may be
|
||||
used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
|
||||
|
||||
Author: Andreas Neukoetter (ti95neuk@de.ibm.com)
|
||||
*/
|
||||
|
||||
void __attribute__ (( constructor )) libgloss_init( void )
|
||||
{
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user