[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cross compile patch - superseed non responsible toolchain-source



Bastian Blank writes:
> On Sun, Feb 23, 2003 at 12:05:32PM +0100, Matthias Klose wrote:
> > > it changes the following:
> > > - debian/control.m4:
> > 
> > some chunks did not cleanly apply. attched is a control file for
> > m68k. Please could you check it and send me diffs how it should look
> > like.
> 
> attached. one problem with that: does the compiler needs cpp?

yes. although the separation doesn't make much sense starting with 3.3
(integrated cpp).

> > >   - cross packages don't have a version
> > 
> > hmm, they do have a version ...
> 
> as i read the old rules, the cross packages don't include a version
> within the package name, gcc-m68k not gcc-m68k-3.2

ok, a typo in my control.m4 manual edits. attaching the control.m4
file here.

> > >   - enable c++ cross package
> > 
> > why are so many packages really needed? Isn't one cross compiler
> > package sufficient?
> 
> i think the same problem then the native compiler

no, we have to differentiate between runtime libraries and development
files. there is no such differentiation for a cross compiler.

I would it find easier to put together libgcc1-xxx, cpp-xxx and
gcc-xxx into one package (gcc-xxx).

same for all C++ related packages -> g++-xxx (or put them into
gcc-xxx) as well. Not sure, if we really need the -pic and -dbg files
for a cross compiler.

the soft-float is dropped for native builds currently. do we need this
and nof for cross compilers?

> > debian/rules2:
> > @@ -324,7 +328,7 @@
> >                 &
> >  endif
> >  
> > -ifeq ($(DEB_HOST_GNU_SYSTEM),linux)
> > +ifeq ($(DEB_TARGET_GNU_SYSTEM),linux)
> >         -echo "Running testsuite ..."; \
> >           if [ -e /proc/meminfo ]; then \
> >             m=`awk '/^((Mem|Swap)Free|Cached)/{m+=$$2}END{print int(m*.9)}' \
> > 
> > This should remain HOST, not TARGET, some other occurences as well.
> 
> when should the testsuite run?

good question. never tried to run a testsuite of a cross
compiler. currently it's run on HOST, so it can run all compile
tests. dejagnu offers support to run a testsuite on a remote host, but
I didn't check yet how to do.

> -- 
> Captain's Log, star date 21:34.5...
> --- out.orig	2003-02-23 12:27:43.000000000 +0100
> +++ out	2003-02-23 12:29:14.000000000 +0100
> -Depends: ${shlibs:Depends}, binutils-m68k (>= 2.13.90.0.10)
> +Depends: gcc-3.2-base, libgcc1-m68k (>= 1:3.2.3-0pre1.cross.1), ${shlibs:Depends}, cpp-3.2 (>= 1:3.2.3-0pre1.cross.1), cpp-3.2 (<< 1:3.2.4), ${shlibs:Depends}, binutils-m68k (>= 2.13.90.0.10)

libgcc1-m68k seems to be ok, but why gcc-3.2-base and cpp-3.2?


	Matthias


divert(-1)

define(`checkdef',`ifdef($1, , `errprint(`error: undefined macro $1
')m4exit(1)')')
define(`errexit',`errprint(`error: undefined macro `$1'
')m4exit(1)')

dnl The following macros must be defined, when called:
dnl ifdef(`SRCNAME',	, errexit(`SRCNAME'))
dnl ifdef(`CV',		, errexit(`CV'))
dnl ifdef(`NV',		, errexit(`NV'))
dnl ifdef(`PV',		, errexit(`PV'))
dnl ifdef(`ARCH',		, errexit(`ARCH'))

dnl The architecture will also be defined (-D__i386__, -D__powerpc__, etc.)

define(`PN', `$1')
define(`PRI', `$1')
define(`MAINTAINER', `Debian GCC maintainers <debian-gcc@lists.debian.org>')
ifdef(`TARGET', `
    define(`PRI', `optional')
', `
    define(`TS')
')

define(`ifenabled', `ifelse(index(enabled_languages, `$1'), -1, `dnl', `$2')')

divert`'dnl
dnl --------------------------------------------------------------------------
Source: SRCNAME
Section: devel
Priority: PRI(standard)
Maintainer: MAINTAINER
Uploaders: Christopher C. Chimelis <chris@debian.org>, Matthias Klose <doko@debian.org>, Ryan Murray <rmurray@debian.org>
Standards-Version: 3.5.6
Build-Depends: LIBC_BUILD_DEP, m4, autoconf2.13, automake1.4 | automake (<< 1.5), libtool, autotools-dev, gawk, dejagnu (>= 1.4), expect (>= 5.38.0), bzip2, binutils (>= BINUTILSV) [!s390], binutils (>= 2.13.90.0.4) [s390], debhelper (>= 3.0.25), gperf (>= 2.7-3), bison (>= 1:1.875a-1) | bison (<< 1.50), flex, gettext, texinfo, zlib1g-dev, libgc6-dev [libgc6_no_archs], xlibs-dev, gnat-3.2 [ada_no_archs] | gnat (>= 3.14p-3) [i386 powerpc sparc], libncurses5-dev, libgmp3-dev, libc6-dev-s390x [s390], tetex-bin, locales  [locale_no_archs], gcc-2.95 [m68k], procps, help2man
Build-Depends-Indep: doxygen, sharutils

ifdef(`TARGET', `', `
Package: gcc`'TS`'PV-base
Architecture: any
Section: devel
Priority: PRI(important)
Description: The GNU Compiler Collection (base package)
 This package contains files common to all languages and libraries
 contained in the GNU Compiler Collection (GCC).
')`'dnl native

ifenabled(`libgcc',`
Package: libgcc`'GCC_SO`'TS
Architecture: any
Section: libs
Priority: PRI(important)
Depends: ${shlibs:Depends}
ifdef(`TARGET)',`dnl', `Replaces: libgcc300, libgcc0')
Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `')
 Shared version of the support library, a library of internal subroutines
 that GCC uses to overcome shortcomings of particular machines, or
 special needs for some languages.
')`'dnl libgcc

ifenabled(`cdev',`
Package: ifdef(`TARGET',`gcc`'TS', `gcc`'TS`'PV')
Architecture: any
ifdef(`TARGET', `dnl gcc cross compiler
Section: devel
Priority: PRI(optional)
Depends: libgcc`'GCC_SO`'TS (>= CV), ${shlibs:Depends}, binutils`'TS (>= BINUTILSV)
Suggests: task-c-devel
Provides: c-compiler`'TS
Recommends: TARGET-libc
Suggests: gcc`'PV-doc (>= CV)
', `dnl gcc native compiler
Depends: gcc`'TS`'PV-base, libgcc`'GCC_SO`'TS (>= CV), ${shlibs:Depends}, cpp`'TS`'PV (>= CV), cpp`'TS`'PV (<< NV), binutils`'TS (>= BINUTILSV)
Suggests: task-c-devel
Conflicts: libc5-dev, gcc-3.1
Replaces: gcc-3.1
Provides: c-compiler`'TS
Recommends: LIBC_DEV
Suggests: gcc`'PV-doc (>= CV)
')`'dnl native
Description: The GNU C compiler`'ifdef(`TARGET)',` (cross compiler for TARGET)', `')
 This is the GNU C compiler, a fairly portable optimizing compiler for C.
')`'dnl cdev

ifenabled(`cdev',`
ifdef(`TARGET', `', `
Package: cpp`'TS`'PV
Architecture: any
Section: interpreters
Depends: gcc`'TS`'PV-base (>= CV), gcc`'TS`'PV-base (<< NV), ${shlibs:Depends}
Description: The GNU C preprocessor
 A macro processor that is used automatically by the GNU C compiler
 to transform programs before actual compilation.
 .
 This package has been separated from gcc for the benefit of those who
 require the preprocessor but not the compiler.

Package: cpp`'PV-doc
Architecture: all
Section: doc
Priority: PRI(optional)
Depends: gcc`'PV-base
Replaces: cpp (<= 1:2.93.12)
Description: Documentation for the GNU C preprocessor (cpp)
 Documentation for the GNU C preprocessor in info `format'.
')`'dnl native
')`'dnl cdev

ifenabled(`c++',`
ifenabled(`c++dev',`
Package: ifdef(`TARGET',`g++`'TS', `g++`'TS`'PV')
Architecture: any
Section: devel
Priority: PRI(standard)
Provides: c++-compiler`'TS
ifdef(`TARGET',`dnl cross
Depends: gcc`'PV-base, ${shlibs:Depends}, gcc`'TS (>= CV), gcc`'TS (<< NV), libstdc++CXX_SO`'TS-dev (>= CV)
',`dnl native
Depends: gcc`'TS`'PV-base, ${shlibs:Depends}, gcc`'TS`'PV (>= CV), gcc`'TS`'PV (<< NV), libstdc++CXX_SO-dev (>= CV)
Replaces: gcc (<= 2.7.2.3-3)
')`'dnl native
Suggests: task-c++-devel, gcc`'PV-doc (>= CV)
Description: The GNU C++ compiler`'ifdef(`TARGET)',` (cross compiler for TARGET)', `')
 This is the GNU C++ compiler, a fairly portable optimizing compiler for C++.
')`'dnl c++dev
')`'dnl c++

ifenabled(`proto',`
Package: protoize
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}, gcc`'PV (>= CV), gcc`'PV (<< NV)
Description: Create/remove ANSI prototypes from C code
 "protoize" can be used to add prototypes to a program, thus converting
 the program to ANSI C in one respect.  The companion program "unprotoize"
 does the reverse: it removes argument types from any prototypes
 that are found.
')`'dnl proto

ifenabled(`objc',`
ifenabled(`objcdev',`
Package: gobjc`'PV
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}, libobjc`'OBJC_SO (>= CV), gcc`'PV (>= CV), gcc`'PV (<< NV)
Suggests: gcc`'PV-doc (>= CV)
Provides: objc-compiler
ifdef(`OBJC_GC',`Recommends: libgc6-dev', `dnl')
ifdef(`__sparc__',`Conflicts: gcc`'PV-sparc64', `dnl')
Description: The GNU Objective-C compiler
 This is the GNU Objective-C compiler, which compiles
 Objective-C on platforms supported by the gcc compiler. It uses the
 gcc backend to generate optimized code.
')`'dnl objcdev

ifenabled(`libobjc',`
Package: libobjc`'OBJC_SO
Section: libs
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}
Description: Runtime library for GNU Objective-C applications
 Library needed for GNU ObjC applications linked against the shared library.
')`'dnl libobjc
')`'dnl objc

ifenabled(`f77',`
ifenabled(`fdev',`
Package: g77`'PV
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, libg2c`'G2C_SO, ${shlibs:Depends}, gcc`'PV (>= CV), gcc`'PV (<< NV)
Provides: fortran77-compiler
Suggests: g77`'PV-doc
Description: The GNU Fortran 77 compiler
 This is the GNU g77 Fortran compiler, which compiles
 Fortran 77 on platforms supported by the gcc compiler. It uses the
 gcc backend to generate optimized code.

Package: g77`'PV-doc
Architecture: all
Section: doc
Priority: PRI(optional)
Depends: gcc`'PV-base
Replaces: g77 (<= 1:2.91.58-3)
Description: Documentation for the GNU Fortran compiler (g77)
 Documentation for the GNU Fortran 77 compiler in info `format'.
')`'dnl fdev

Package: libg2c`'G2C_SO
Section: libs
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}
Description: Runtime library for GNU Fortran 77 applications
 Library needed for GNU Fortran 77 applications linked against the
 shared library.
')`'dnl f77

ifenabled(`java',`
ifenabled(`javadev',`
Package: gcj`'PV
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}, java-common, gcc`'PV (>= CV), gcc`'PV (<< NV), libgcj`'GCJ_SO-dev (>= CV)
Recommends: fastjar
Provides: java-compiler
Conflicts: gcj-2.95, libgcj2-dev (<= 1:3.0.4-0pre020127)
Replaces: libgcj2-dev (<= 1:3.0.4-0pre020127)
Description: The GNU compiler for Java(TM)
 GCJ is a front end to the GCC compiler which can natively compile both
 Java(tm) source and bytecode files. The compiler can also generate class
 files.
')`'dnl javadev

Package: gij`'PV
Priority: optional
Architecture: any
Depends: gcc`'PV-base, ${shlibs:Depends}
Suggests: fastjar
Conflicts: libgcj2 (<= 1:3.0.3-1)
Replaces: libgcj2 (<= 1:3.0.3-1)
Provides: java-virtual-machine, java1-runtime
Description: The GNU Java bytecode interpreter
 GIJ is not limited to interpreting bytecode. It includes a class loader which
 can dynamically load shared objects, so it is possible to give it the name
 of a class which has been compiled and put into a shared library on the
 class path.

Package: libgcj-common
Section: libs
Architecture: any
Priority: PRI(optional)
Conflicts: classpath (<= 0.04-4), libgcj3 (<< 1:3.2-0pre2)
Description: Java runtime library (common files)
 This package contains files shared by classpath and libgcj libraries.

Package: libgcj`'GCJ_SO
Section: libs
Architecture: any
Priority: PRI(optional)
Depends: libgcj-common, ${shlibs:Depends}
Description: Java runtime library for use with gcj
 This is the runtime that goes along with the gcj front end to
 gcc. libgcj includes parts of the Java Class Libraries, plus glue to
 connect the libraries to the compiler and the underlying OS.

ifenabled(`javadev',`
Package: libgcj`'GCJ_SO-dev
Section: devel
Architecture: any
Priority: PRI(optional)
Depends: gcj`'PV (>= CV), libgcj`'GCJ_SO (>= CV), LIBC_DEV, zlib1g-dev, ${shlibs:Depends}
Conflicts: libgcj0, libgcj0-dev, libgcj300-dev, libgcj2-dev
Replaces: libgcj300-dev
Description: Java development headers and static library for use with gcj
 This is the development headers and static libraries that go along
 with the gcj front end to gcc. libgcj includes parts of the Java Class
 Libraries, plus glue to connect the libraries to the compiler and the
 underlying OS.
')`'dnl javadev
')`'dnl java

ifenabled(`fastjar',`
Package: fastjar
Section: devel
Architecture: any
Priority: PRI(extra)
Depends: ${shlibs:Depends}
Description: Jar creation utility
 Replacement for Suns .jar creation program.  It is written in C
 instead of java and is tons faster.  It is currently not complete.
')`'dnl fastjar

ifenabled(`ffi',`
Package: libffi`'FFI_SO
Section: libs
Architecture: any
Priority: PRI(optional)
Depends: gcc`'TS`'PV-base, ${shlibs:Depends}
Description: Foreign Function Interface library runtime
 A foreign function interface is the popular name for the interface that
 allows code written in one language to call code written in another
 language.

Package: libffi`'FFI_SO-dev
Section: devel
Architecture: any
Priority: PRI(optional)
Depends: gcc`'TS`'PV-base, libffi`'FFI_SO (>= CV), LIBC_DEV
Conflicts: libffi1-dev
Description: Foreign Function Interface library development
 A foreign function interface is the popular name for the interface that
 allows code written in one language to call code written in another
 language.
')`'dnl ffi

ifenabled(`c++',`
Package: libstdc++CXX_SO`'TS
Architecture: any
Section: base
Priority: PRI(important)
Depends: gcc`'PV-base, ${shlibs:Depends}
Description: The GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `')
 This package contains an additional runtime library for C++ programs
 built with the GNU compiler.
 .
 libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which
 was included up to g++-2.95. The first version of libstdc++-v3 appeared
 in g++-3.0.

ifenabled(`c++dev',`
Package: libstdc++CXX_SO`'TS-dev
Architecture: any
Priority: PRI(standard)
ifdef(`TARGET',`dnl cross
Depends: gcc`'PV-base, libstdc++CXX_SO`'TS (>= CV), LIBC_DEV, g++`'TS (>= CV)
',`dnl native
Depends: gcc`'PV-base, libstdc++CXX_SO`'TS (>= CV), LIBC_DEV, g++`'TS`'PV (>= CV)
Conflicts: libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.8-dev, libg++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++3.0-dev
Suggests: libstdc++CXX_SO-doc, stl-manual
')`'dnl native
Provides: libstdc++`'TS-dev
Description: The GNU Standard C++ Library v3 (development files)
 This package contains the headers and static library files necessary for
 building C++ programs which use libstdc++. Be advised that this only works
 with the GNU C++ compiler (version 3.0), and no earlier library will work it.
 .
 libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which
 was included up to g++-2.95. The first version of libstdc++-v3 appeared
 in g++-3.0.

Package: libstdc++CXX_SO`'TS-pic
Architecture: any
Priority: extra
Depends: gcc`'PV-base, libstdc++CXX_SO`'TS, libstdc++CXX_SO`'TS-dev
Description: The GNU Standard C++ Library v3 (shared library subset kit)
 This is used to develop subsets of the libstdc++ shared libraries for
 use on custom installation floppies and in embedded systems.
 .
 Unless you are making one of those, you will not need this package.

Package: libstdc++CXX_SO`'TS-dbg
Architecture: any
Priority: extra
Depends: gcc`'PV-base, libstdc++CXX_SO`'TS, libstdc++CXX_SO`'TS-dev
Description: The GNU Standard C++ Library v3 (debugging files)
 This package contains the shared library of libstdc++ compiled with
 debugging symbols.

ifdef(`TARGET', `', `
Package: libstdc++CXX_SO-doc
Architecture: all
Section: doc
Priority: PRI(optional)
Depends: gcc`'PV-base
Replaces: libstdc++3.0-doc
Description: The GNU Standard C++ Library v3 (documentation files)
 This package contains documentation files for the GNU stdc++ library.
 .
 One set is the distribution documentation, the other set is the
 source documentation including a namespace list, class hierarchy,
 alphabetical list, compound list, file list, namespace members,
 compound members and file members.
')`'dnl native
')`'dnl c++dev
')`'dnl c++

ifenabled(`ada',`
Package: gnat`'-GNAT_V
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}, libgnat`'GNAT_SO (>= CV), gcc`'PV (>= 1:3.1), gcc`'PV (<< NV)
Suggests: gnat`'PV-doc, ada-reference-manual
Provides: ada-compiler
Conflicts: gnat, gnat-3.1
Provides: gnat
Description: The GNU Ada compiler
 This is the GNU Ada compiler, which compiles Ada on platforms supported
 by the gcc compiler. It uses the gcc backend to generate optimized code.

Package: libgnat`'GNAT_SO
Section: libs
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}
Description: Runtime library for GNU Ada applications
 Library needed for GNU Ada applications linked against the shared library.

Package: gnat`'PV-doc
Architecture: all
Section: doc
Priority: PRI(optional)
Depends: gcc`'PV-base
Suggests: gnat`'PV
Description: Documentation for the GNU Ada compiler (gnat)
 Documentation for the GNU Ada compiler in info `format'.
')`'dnl ada

ifenabled(`pascal',`
Package: gpc`'GPC_PV
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}, gcc`'PV (>= CV), gcc`'PV (<< NV)
Recommends: libgmp3-dev, libncurses5-dev
Suggests: gpc`'GPC_PV-doc (>= GPC_CV)
Provides: pascal-compiler
Description: The GNU Pascal compiler
 This is the GNU Pascal compiler, which compiles Pascal on platforms supported
 by the gcc compiler. It uses the gcc backend to generate optimized code.
 .
 WARNING: the integration of gpc into gcc-3.x is still in an experimental
 stage. For production use, please use gpc or gpc-2.95.

Package: gpc`'GPC_PV-doc
Architecture: all
Section: doc
Priority: PRI(optional)
Depends: gcc`'PV-base
Replaces: gpc (<= 2.91.58-3)
Suggests: gpc`'GPC_PV
Description: Documentation for the GNU Pascal compiler (gpc)
 Documentation for the GNU Pascal compiler in info `format'.
 .
 WARNING: the integration of gpc into gcc-3.x is still in an experimental
 stage. For production use, please use gpc or gpc-2.95.
')`'dnl pascal

Package: ifdef(`TARGET)',`gcc`'TS-soft-float', `gcc`'TS`'PV-soft-float')
Architecture: ifdef(`TARGET',`any', `arm')
Priority: PRI(optional)
ifdef(`TARGET',`dnl cross
Depends: gcc`'PV-base, ${shlibs:Depends}ifenabled(`cdev',`, gcc`'TS (>= CV), gcc`'TS (<< NV)')
',`dnl native
Depends: gcc`'PV-base, ${shlibs:Depends}ifenabled(`cdev',`, gcc`'PV (>= CV), gcc`'PV (<< NV)')
')`'dnl native
Replaces: gcc-soft-float-ss (<< NV)
Description: The soft-floating-point gcc libraries (arm)
 These are versions of basic static libraries such as libgcc.a compiled
 with the -msoft-float option, for CPUs without a floating-point unit.

ifenabled(`fixincl',`
Package: fixincludes
Architecture: any
Priority: PRI(optional)
Depends: gcc`'PV-base, ${shlibs:Depends}, gcc`'PV (>= CV), gcc`'PV (<< NV)
Description: Fix non-ANSI header files
 FixIncludes was created to fix non-ANSI system header files. Many
 system manufacturers supply proprietary headers that are not ANSI compliant.
 The GNU compilers cannot compile non-ANSI headers. Consequently, the
 FixIncludes shell script was written to fix the header files.
 .
 Not all packages with header files are installed at gcc's build time, so
 we make fixincludes available at build time of other packages, such that
 checking tools like lintian can make use of it.
')`'dnl proto

ifenabled(`cdev',`
ifdef(`TARGET', `', `
Package: gcc`'PV-doc
Architecture: all
Section: doc
Priority: PRI(optional)
Depends: gcc`'PV-base
Conflicts: gcc-docs (<< 2.95.2)
Replaces: gcc (<=2.7.2.3-4.3), gcc-docs (<< 2.95.2)
Description: Documentation for the GNU compilers (gcc, gobjc, g++)
 Documentation for the GNU compilers in info `format'.
')`'dnl native
')`'dnl cdev

Package: ifdef(`TARGET)',`gcc`'TS-nof', `gcc`'TS`'PV-nof')
Architecture: ifdef(`TARGET',`any', `powerpc')
Priority: PRI(optional)
ifdef(`TARGET',`dnl cross
Depends: gcc`'PV-base, ${shlibs:Depends}ifenabled(`cdev',`, gcc`'TS (>= CV), gcc`'TS (<< NV)')
',`dnl native
Depends: gcc`'PV-base, ${shlibs:Depends}ifenabled(`cdev',`, gcc`'PV (>= CV), gcc`'PV (<< NV)')
')`'dnl native
Description: The no-floating-point gcc libraries (powerpc)
 These are versions of basic static libraries such as libgcc.a compiled
 with the -msoft-float option, for CPUs without a floating-point unit.
dnl
dnl last line in file



Reply to: