public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [RFC] GCC-4 new packaging.
@ 2009-02-09  3:28 Dave Korn
  2009-02-09  6:14 ` Yaakov (Cygwin/X)
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Dave Korn @ 2009-02-09  3:28 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 8738 bytes --]


    Hi all,

  I'm about ready to release a new compiler package.  This is going to mean a
whole bunch of new packages and one obsoletion, and I was hoping I could get a
hand proof-reading the setup hints and any comments anyone has on packaging,
names and categories.

  First off, there's a whole bunch of new runtime libraries:

gcc4-libgcc1-runtime-4.3.2-2
./usr/bin/cyggcc_s-1.dll

gcc4-libgomp1-runtime-4.3.2-2
./usr/bin/cyggomp-1.dll

gcc4-libssp0-runtime-4.3.2-2
./usr/bin/cygssp-0.dll

gcc4-libgfortran3-runtime-4.3.2-2
./usr/bin/cyggfortran-3.dll

gcc4-libffi4-runtime-4.3.2-2
./usr/bin/cygffi-4.dll

gcc4-libgcj9-runtime-4.3.2-2
./usr/bin/cyggcj-9.dll
./usr/bin/cyggcj-tools-9.dll

gcc4-java-runtime-config-4.3.2-2
./etc/defaults/usr/lib/logging.properties
./etc/defaults/usr/lib/security/classpath.security
./etc/postinstall/gcc4-java-runtime-config.sh
./etc/preremove/gcc4-java-runtime-config.sh

gcc4-libobjc2-runtime-4.3.2-2
./usr/bin/cygobjc-2.dll

gcc4-libstdc++6-runtime-4.3.2-2
./usr/bin/cygstdc++-6.dll

gcc4-libgnat4.3-runtime-4.3.2-2
./usr/bin/cyggnarl-4.3.dll
./usr/bin/cyggnat-4.3.dll

  I considered breaking out the Java and GNAT DLLs into individual packages,
but figure they're liable to be so closely coupled that it would be pointless.
 I don't know if it's even worth having a separate package for the java config
files, but I did it anyway.

  Note also that there is no gcc4-runtime-4.3.2-2, which was the package that
contained the old unversioned cyggcc_s.dll we've been using so far.  In order
to obsolete it, can I just update the existing setup.hint to move it into the
_obsolete category, or does there need to be a version number change?

  Next are the main compiler packages.  I would be glad if anyone could cast
an eye over the list of package contents for me and sanity check that I
haven't put anything in obviously the wrong place.  Each one should contain
just the executables, headers, link libs and docs relevant to its language.

gcc4-4.3.2-2
./usr/share/doc/gcc4-4.3.2
./usr/share/doc/Cygwin/gcc4-4.3.2.README
./usr/share/man/man7/fsf-funding.7.gz
./usr/share/man/man7/gfdl.7.gz
./usr/share/man/man7/gpl.7.gz

gcc4-core-4.3.2-2
./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/*.h
./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/ssp
./usr/lib/gcc/i686-pc-cygwin/4.3.2/include-fixed
./usr/lib/gcc/i686-pc-cygwin/4.3.2/install-tools
./usr/bin/cpp-4.exe
./usr/bin/gcc-4.exe
./usr/bin/gccbug-4
./usr/bin/gcov-4.exe
./usr/bin/i686-pc-cygwin-gcc-4.3.2.exe
./usr/bin/i686-pc-cygwin-gcc-4.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/collect2.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/crtbegin.o
./usr/lib/gcc/i686-pc-cygwin/4.3.2/crtend.o
./usr/lib/gcc/i686-pc-cygwin/4.3.2/crtfastmath.o
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcc.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcc_eh.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcc_s.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcov.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.la
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.spec
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp.la
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp_nonshared.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp_nonshared.la
./usr/share/locale/*
./usr/share/info/cpp.info.gz
./usr/share/info/cppinternals.info.gz
./usr/share/info/gcc.info.gz
./usr/share/info/gccinstall.info.gz
./usr/share/info/gccint.info.gz
./usr/share/info/libgomp.info.gz
./usr/share/man/man1/cpp-4.1.gz
./usr/share/man/man1/gcc-4.1.gz
./usr/share/man/man1/gcov-4.1.gz

gcc4-g++-4.3.2-2
./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/c++
./usr/bin/c++-4.exe
./usr/bin/g++-4.exe
./usr/bin/i686-pc-cygwin-c++-4.exe
./usr/bin/i686-pc-cygwin-g++-4.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1plus.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libstdc++.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libstdc++.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libstdc++.la
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libsupc++.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libsupc++.la
./usr/share/man/man1/g++-4.1.gz

gcc4-java-4.3.2-2
./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/gcj
./usr/lib/gcj-4.3.2-9
./usr/share/java
./usr/bin/addr2name.awk-4
./usr/bin/gappletviewer-4.exe
./usr/bin/gc-analyze-4.exe
./usr/bin/gcj-4.exe
./usr/bin/gcj-dbtool-4.exe
./usr/bin/gcjh-4.exe
./usr/bin/gij-4.exe
./usr/bin/gjar-4.exe
./usr/bin/gjarsigner-4.exe
./usr/bin/gjavah-4.exe
./usr/bin/gkeytool-4.exe
./usr/bin/gnative2ascii-4-4.exe
./usr/bin/gorbd-4.exe
./usr/bin/grmic-4.exe
./usr/bin/grmid-4.exe
./usr/bin/grmiregistry-4.exe
./usr/bin/gserialver-4.exe
./usr/bin/gtnameserv-4.exe
./usr/bin/i686-pc-cygwin-gcj-4.exe
./usr/bin/jcf-dump-4.exe
./usr/bin/jv-convert-4.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/jc1.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/jvgenmain.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj-tools.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj-tools.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj-tools.la
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.la
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.spec
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgij.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgij.la
./usr/lib/libffi.a
./usr/lib/libffi.dll.a
./usr/lib/libffi.la
./usr/lib/pkgconfig/libgcj-4.3.pc
./usr/share/info/cp-tools.info.gz
./usr/share/info/gcj.info.gz
./usr/share/man/man1/gappletviewer-4.1.gz
./usr/share/man/man1/gc-analyze-4.1.gz
./usr/share/man/man1/gcj-4.1.gz
./usr/share/man/man1/gcj-dbtool-4.1.gz
./usr/share/man/man1/gcjh-4.1.gz
./usr/share/man/man1/gij-4.1.gz
./usr/share/man/man1/gjar-4.1.gz
./usr/share/man/man1/gjarsigner-4.1.gz
./usr/share/man/man1/gjavah-4.1.gz
./usr/share/man/man1/gkeytool-4.1.gz
./usr/share/man/man1/gnative2ascii-4.1.gz
./usr/share/man/man1/gorbd-4.1.gz
./usr/share/man/man1/grmic-4.1.gz
./usr/share/man/man1/grmid-4.1.gz
./usr/share/man/man1/grmiregistry-4.1.gz
./usr/share/man/man1/gserialver-4.1.gz
./usr/share/man/man1/gtnameserv-4.1.gz
./usr/share/man/man1/jcf-dump-4.1.gz
./usr/share/man/man1/jv-convert-4.1.gz

gcc4-fortran-4.3.2-2
./usr/lib/gcc/i686-pc-cygwin/4.3.2/finclude
./usr/bin/gfortran-4.exe
./usr/bin/i686-pc-cygwin-gfortran-4.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/f951.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortran.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortran.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortran.la
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortranbegin.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortranbegin.la
./usr/share/info/gfortran.info.gz
./usr/share/man/man1/gfortran-4.1.gz

gcc4-objc-4.3.2-2
./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/objc
./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1obj.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1objplus.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libobjc.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libobjc.dll.a
./usr/lib/gcc/i686-pc-cygwin/4.3.2/libobjc.la

gcc4-ada-4.3.2-2
./usr/lib/gcc/i686-pc-cygwin/4.3.2/adainclude
./usr/lib/gcc/i686-pc-cygwin/4.3.2/adalib
./usr/bin/gnat-4.exe
./usr/bin/gnatbind-4.exe
./usr/bin/gnatbl-4.exe
./usr/bin/gnatchop-4.exe
./usr/bin/gnatclean-4.exe
./usr/bin/gnatfind-4.exe
./usr/bin/gnatkr-4.exe
./usr/bin/gnatlink-4.exe
./usr/bin/gnatls-4.exe
./usr/bin/gnatmake-4.exe
./usr/bin/gnatname-4.exe
./usr/bin/gnatprep-4.exe
./usr/bin/gnatxref-4.exe
./usr/lib/gcc/i686-pc-cygwin/4.3.2/gnat1.exe
./usr/share/info/gnat-style.info.gz
./usr/share/info/gnat_rm.info.gz
./usr/share/info/gnat_ugn_unw.info.gz


  Lastly, I've attached my hint files, and again, I could really use a hand
proof-reading and sanity checking, because there's so many of them I'm almost
bound to have made a cut and paste error that I've now looked at too many
times to be able to see.

  The things to look out for are did I get the sdesc right, is the category
right (Devel for all, also Libs for the runtimes), and do the requires lines
look like they're vaguely right or contain any obvious gaping omissions.

  Obviously nobody can verify they're actually right without having copies of
the DLLs themselves, but I used a script to collect the cygcheck output for
all the DLLs and executables in the packages and generated the attached
deps.txt file from it, so anyone who was feeling particularly keen could give
it another cross-check for me..... pretty please? ;-)

  So, barring last minute hitches, I should be able to upload this around the
end of the week.  I would welcome any comments or advice on the packaging,
because this is a major transition and I'd like to get it right and not
inconvenience any of the users.  Opinions welcome!

    cheers,
      DaveK






[-- Attachment #2: ada.hint --]
[-- Type: text/plain, Size: 223 bytes --]

sdesc: "GCC Release series 4 compiler: Ada (GNAT) subpackage"
category: Devel
requires: cygwin binutils w32api gcc4-libgcc1-runtime libgmp3 libmpfr1 gcc4-core _update-info-dir gcc4-libgnat4.3-runtime
external-source: gcc4


[-- Attachment #3: core.hint --]
[-- Type: text/plain, Size: 237 bytes --]

sdesc: "GCC Release series 4 compiler: core C compiler subpackage"
category: Devel
requires: cygwin binutils w32api gcc4-libgcc1-runtime gcc4-libgomp1-runtime gcc4-libssp0-runtime libgmp3 libmpfr1 _update-info-dir
external-source: gcc4


[-- Attachment #4: fortran.hint --]
[-- Type: text/plain, Size: 222 bytes --]

sdesc: "GCC Release series 4 compiler: Fortran subpackage"
category: Devel
requires: cygwin binutils w32api gcc4-libgcc1-runtime gcc4-libgfortran3-runtime libgmp3 libmpfr1 gcc4-core _update-info-dir
external-source: gcc4


[-- Attachment #5: g++.hint --]
[-- Type: text/plain, Size: 178 bytes --]

sdesc: "GCC Release series 4 compiler: G++ subpackage"
category: Devel
requires: cygwin binutils w32api gcc4-libstdc++6-runtime libgmp3 libmpfr1 gcc4-core
external-source: gcc4


[-- Attachment #6: java.hint --]
[-- Type: text/plain, Size: 269 bytes --]

sdesc: "GCC Release series 4 compiler: Java subpackage"
category: Devel
requires: cygwin binutils w32api libgmp3 libmpfr1 _update-info-dir gcc4-g++ gcc4-core gcc4-libgcc1-runtime gcc4-libgcj9-runtime gcc4-java-runtime-config gcc4-libffi4-runtime
external-source: gcc4


[-- Attachment #7: java-runtime-config.hint --]
[-- Type: text/plain, Size: 127 bytes --]

sdesc: "GCC Release series 4 compiler: Java runtime configuration files"
category: Devel
requires: bash
external-source: gcc4


[-- Attachment #8: libffi4-runtime.hint --]
[-- Type: text/plain, Size: 140 bytes --]

sdesc: "GCC Release series 4 compiler: Foreign Frame Interface shared runtime"
category: Devel Libs
requires: cygwin
external-source: gcc4


[-- Attachment #9: libgcc1-runtime.hint --]
[-- Type: text/plain, Size: 137 bytes --]

sdesc: "GCC Release series 4 compiler: GCC compiler support shared runtime"
category: Devel Libs
requires: cygwin
external-source: gcc4


[-- Attachment #10: libgcj9-runtime.hint --]
[-- Type: text/plain, Size: 177 bytes --]

sdesc: "GCC Release series 4 compiler: Java shared runtime"
category: Devel Libs
requires: cygwin libiconv2 gcc4-java-runtime-config gcc4-libgcc1-runtime
external-source: gcc4


[-- Attachment #11: libgfortran3-runtime.hint --]
[-- Type: text/plain, Size: 145 bytes --]

sdesc: "GCC Release series 4 compiler: Fortran shared runtime"
category: Devel Libs
requires: cygwin gcc4-libgcc1-runtime
external-source: gcc4


[-- Attachment #12: libgnat4.3-runtime.hint --]
[-- Type: text/plain, Size: 148 bytes --]

sdesc: "GCC Release series 4 compiler: Ada (GNAT) shared runtime"
category: Devel Libs
requires: cygwin gcc4-libgcc1-runtime
external-source: gcc4


[-- Attachment #13: libgomp1-runtime.hint --]
[-- Type: text/plain, Size: 121 bytes --]

sdesc: "GCC Release series 4 compiler: GOMP shared runtime"
category: Devel Libs
requires: cygwin
external-source: gcc4


[-- Attachment #14: libobjc2-runtime.hint --]
[-- Type: text/plain, Size: 157 bytes --]

sdesc: "GCC Release series 4 compiler: Objective C and C++ shared runtime"
category: Devel Libs
requires: cygwin gcc4-libgcc1-runtime
external-source: gcc4


[-- Attachment #15: libssp0-runtime.hint --]
[-- Type: text/plain, Size: 140 bytes --]

sdesc: "GCC Release series 4 compiler: Static Stack Protection shared runtime"
category: Devel Libs
requires: cygwin
external-source: gcc4


[-- Attachment #16: libstdc++6-runtime.hint --]
[-- Type: text/plain, Size: 158 bytes --]

sdesc: "GCC Release series 4 compiler: C++ Standard Library shared runtime"
category: Devel Libs
requires: cygwin gcc4-libgcc1-runtime
external-source: gcc4


[-- Attachment #17: objc.hint --]
[-- Type: text/plain, Size: 232 bytes --]

sdesc: "GCC Release series 4 compiler: Objective C and Objective C++ subpackage"
category: Devel
requires: cygwin binutils w32api gcc4-libgcc1-runtime libgmp3 libmpfr1 gcc4-core gcc4-c++ gcc4-libobjc2-runtime
external-source: gcc4


[-- Attachment #18: setup.hint --]
[-- Type: text/plain, Size: 110 bytes --]

sdesc: "GCC Release series 4 compiler (C & C++ install helper)"
category: Devel
requires: gcc4-core gcc4-g++


[-- Attachment #19: deps.txt --]
[-- Type: text/plain, Size: 7249 bytes --]

#
# Dependencies cross-check for gcc packages.
# Auto-generated by running: ./manifest-to-deps.sh ../../../inst/
#
#

setup.hint

libgcc1-runtime.hint

Unique dependencies: 
  C:\cygwin\bin\cygwin1.dll

requires: cygwin

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cyggcc_s-1.dll
  C:\cygwin\bin\cygwin1.dll


libgomp1-runtime.hint

Unique dependencies: 
  C:\cygwin\bin\cygwin1.dll

requires: cygwin

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cyggomp-1.dll
  C:\cygwin\bin\cygwin1.dll


libssp0-runtime.hint

Unique dependencies: 
  C:\cygwin\bin\cygwin1.dll

requires: cygwin

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cygssp-0.dll
  C:\cygwin\bin\cygwin1.dll


core.hint

Unique dependencies: 
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
  C:\cygwin\bin\cygwin1.dll

requires: cygwin libgmp3 libmpfr1 _update-info-dir

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cpp-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gcc-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gcov-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/i686-pc-cygwin-gcc-4.3.2.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/i686-pc-cygwin-gcc-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1.exe
  C:\cygwin\bin\cygwin1.dll
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/collect2.exe
  C:\cygwin\bin\cygwin1.dll


g++.hint

Unique dependencies: 
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
  C:\cygwin\bin\cygwin1.dll

requires: cygwin libgmp3 libmpfr1

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/c++-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/g++-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/i686-pc-cygwin-c++-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/i686-pc-cygwin-g++-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1plus.exe
  C:\cygwin\bin\cygwin1.dll
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll


java.hint

Unique dependencies: 
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
  C:\cygwin\bin\cygwin1.dll
  usr/bin\cyggcc_s-1.dll
  usr/bin\cyggcj-9.dll
  usr/bin\cyggcj-tools-9.dll

requires: cygwin libgmp3 libmpfr1 _update-info-dir

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/gappletviewer-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gc-analyze-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gcj-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gcj-dbtool-4.exe
  usr/bin\cyggcj-9.dll
usr/bin/gcjh-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gij-4.exe
  usr/bin\cyggcc_s-1.dll
  usr/bin\cyggcj-9.dll
usr/bin/gjar-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gjarsigner-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gjavah-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gkeytool-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gnative2ascii-4-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gorbd-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/grmic-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/grmid-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/grmiregistry-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gserialver-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/gtnameserv-4.exe
  usr/bin\cyggcj-tools-9.dll
usr/bin/i686-pc-cygwin-gcj-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/jcf-dump-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/jv-convert-4.exe
  usr/bin\cyggcj-9.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/jc1.exe
  C:\cygwin\bin\cygwin1.dll
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/jvgenmain.exe
  C:\cygwin\bin\cygwin1.dll


fortran.hint

Unique dependencies: 
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
  C:\cygwin\bin\cygwin1.dll

requires: cygwin libgmp3 libmpfr1 _update-info-dir

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/gfortran-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/i686-pc-cygwin-gfortran-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/f951.exe
  C:\cygwin\bin\cygwin1.dll
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll


objc.hint

Unique dependencies: 
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
  C:\cygwin\bin\cygwin1.dll

requires: cygwin libgmp3 libmpfr1

All first-order dependencies of executables and DLLs (per cygcheck):
usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1obj.exe
  C:\cygwin\bin\cygwin1.dll
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1objplus.exe
  C:\cygwin\bin\cygwin1.dll
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll


ada.hint

Unique dependencies: 
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll
  C:\cygwin\bin\cygwin1.dll

requires: cygwin libgmp3 libmpfr1 _update-info-dir

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/gnat-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatbind-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatbl-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatchop-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatclean-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatfind-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatkr-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatlink-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatls-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatmake-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatname-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatprep-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/bin/gnatxref-4.exe
  C:\cygwin\bin\cygwin1.dll
usr/lib/gcc/i686-pc-cygwin/4.3.2/gnat1.exe
  C:\cygwin\bin\cygwin1.dll
  C:\cygwin\bin\cyggmp-3.dll
  C:\cygwin\bin\cygmpfr-1.dll


libgfortran3-runtime.hint

Unique dependencies: 
  usr/bin\cyggcc_s-1.dll

requires:

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cyggfortran-3.dll
  usr/bin\cyggcc_s-1.dll


libffi4-runtime.hint

Unique dependencies: 
  C:\cygwin\bin\cygwin1.dll

requires: cygwin

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cygffi-4.dll
  C:\cygwin\bin\cygwin1.dll


libgcj9-runtime.hint

Unique dependencies: 
  C:\cygwin\bin\cygiconv-2.dll
  usr/bin\cyggcc_s-1.dll
  usr/bin\cyggcj-9.dll

requires: libiconv2

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cyggcj-9.dll
  usr/bin\cyggcc_s-1.dll
  C:\cygwin\bin\cygiconv-2.dll
usr/bin/cyggcj-tools-9.dll
  usr/bin\cyggcj-9.dll


java-runtime-config.hint

Unique dependencies: 

requires: bash

All first-order dependencies of executables and DLLs (per cygcheck):


libobjc2-runtime.hint

Unique dependencies: 
  usr/bin\cyggcc_s-1.dll

requires:

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cygobjc-2.dll
  usr/bin\cyggcc_s-1.dll


libstdc++6-runtime.hint

Unique dependencies: 
  usr/bin\cyggcc_s-1.dll

requires:

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cygstdc++-6.dll
  usr/bin\cyggcc_s-1.dll


libgnat4.3-runtime.hint

Unique dependencies: 
  usr/bin\cyggcc_s-1.dll
  usr/bin\cyggnat-4.3.dll

requires:

All first-order dependencies of executables and DLLs (per cygcheck):
usr/bin/cyggnarl-4.3.dll
  usr/bin\cyggcc_s-1.dll
  usr/bin\cyggnat-4.3.dll
usr/bin/cyggnat-4.3.dll
  usr/bin\cyggcc_s-1.dll




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-09  3:28 [RFC] GCC-4 new packaging Dave Korn
@ 2009-02-09  6:14 ` Yaakov (Cygwin/X)
  2009-02-09  7:22   ` Marco Atzeri
  2009-02-09  8:04 ` Reini Urban
  2009-02-10 16:39 ` Dave Korn
  2 siblings, 1 reply; 13+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-02-09  6:14 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dave Korn wrote:
>   I'm about ready to release a new compiler package.  This is going to mean a
> whole bunch of new packages and one obsoletion, and I was hoping I could get a
> hand proof-reading the setup hints and any comments anyone has on packaging,
> names and categories.

Sure...

>   First off, there's a whole bunch of new runtime libraries:
> 
> gcc4-libgcc1-runtime-4.3.2-2
> ./usr/bin/cyggcc_s-1.dll
> 
> gcc4-libgomp1-runtime-4.3.2-2
> ./usr/bin/cyggomp-1.dll
> 
> gcc4-libssp0-runtime-4.3.2-2
> ./usr/bin/cygssp-0.dll
> 
> gcc4-libgfortran3-runtime-4.3.2-2
> ./usr/bin/cyggfortran-3.dll
> 
> gcc4-libffi4-runtime-4.3.2-2
> ./usr/bin/cygffi-4.dll
> 
> gcc4-libgcj9-runtime-4.3.2-2
> ./usr/bin/cyggcj-9.dll
> ./usr/bin/cyggcj-tools-9.dll
>
> gcc4-libobjc2-runtime-4.3.2-2
> ./usr/bin/cygobjc-2.dll
>
> gcc4-libstdc++6-runtime-4.3.2-2
> ./usr/bin/cygstdc++-6.dll
>
> gcc4-libgnat4.3-runtime-4.3.2-2
> ./usr/bin/cyggnarl-4.3.dll
> ./usr/bin/cyggnat-4.3.dll

The gcc4- and -runtime are just confusing; these should be just libgcc1,
libgomp1, etc.  Remember that these will be runtime dependencies for
other packages, and these names are consistent with (most) other runtime
libraries, and match those in Debian.

> gcc4-java-runtime-config-4.3.2-2
> ./etc/defaults/usr/lib/logging.properties
> ./etc/defaults/usr/lib/security/classpath.security
> ./etc/postinstall/gcc4-java-runtime-config.sh
> ./etc/preremove/gcc4-java-runtime-config.sh

I would call this libgcj-common, as in Debian.

>   I considered breaking out the Java and GNAT DLLs into individual packages,
> but figure they're liable to be so closely coupled that it would be pointless.
>  I don't know if it's even worth having a separate package for the java config
> files, but I did it anyway.

It is worth it, because if the libgcj ABI gets bumped in a future
version of gcc, you can't have those files bundled with two versions of
libgcj, as they will collide.

>   Note also that there is no gcc4-runtime-4.3.2-2, which was the package that
> contained the old unversioned cyggcc_s.dll we've been using so far.  In order
> to obsolete it, can I just update the existing setup.hint to move it into the
> _obsolete category, or does there need to be a version number change?

Since the files don't collide (libgcc1 is now versioned), just mark it
_obsolete; no version bump is necessary.

>   Next are the main compiler packages.  I would be glad if anyone could cast
> an eye over the list of package contents for me and sanity check that I
> haven't put anything in obviously the wrong place.  Each one should contain
> just the executables, headers, link libs and docs relevant to its language.
> 
> gcc4-4.3.2-2
> ./usr/share/doc/gcc4-4.3.2
> ./usr/share/doc/Cygwin/gcc4-4.3.2.README
> ./usr/share/man/man7/fsf-funding.7.gz
> ./usr/share/man/man7/gfdl.7.gz
> ./usr/share/man/man7/gpl.7.gz
> 
> gcc4-core-4.3.2-2
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/*.h
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/ssp
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/include-fixed
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/install-tools
> ./usr/bin/cpp-4.exe
> ./usr/bin/gcc-4.exe
> ./usr/bin/gccbug-4
> ./usr/bin/gcov-4.exe
> ./usr/bin/i686-pc-cygwin-gcc-4.3.2.exe
> ./usr/bin/i686-pc-cygwin-gcc-4.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/collect2.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/crtbegin.o
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/crtend.o
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/crtfastmath.o
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcc.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcc_eh.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcc_s.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcov.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.la
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgomp.spec
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp.la
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp_nonshared.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libssp_nonshared.la
> ./usr/share/locale/*
> ./usr/share/info/cpp.info.gz
> ./usr/share/info/cppinternals.info.gz
> ./usr/share/info/gcc.info.gz
> ./usr/share/info/gccinstall.info.gz
> ./usr/share/info/gccint.info.gz
> ./usr/share/info/libgomp.info.gz
> ./usr/share/man/man1/cpp-4.1.gz
> ./usr/share/man/man1/gcc-4.1.gz
> ./usr/share/man/man1/gcov-4.1.gz

What is the reason for separating gcc and gcc-core?  Yes, I know that
gcc-3.4 did this also, but I don't remember the rationale.

> gcc4-g++-4.3.2-2
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/c++
> ./usr/bin/c++-4.exe
> ./usr/bin/g++-4.exe
> ./usr/bin/i686-pc-cygwin-c++-4.exe
> ./usr/bin/i686-pc-cygwin-g++-4.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1plus.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libstdc++.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libstdc++.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libstdc++.la
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libsupc++.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libsupc++.la
> ./usr/share/man/man1/g++-4.1.gz

I'm tempted to suggest a libstdc++6-devel (yes, versioned, because the
includes and link libs are in versioned directories), for C++ libtool
libraries that provide a C interface (and hence may be built against
with just gcc).

> gcc4-java-4.3.2-2
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/gcj
> ./usr/lib/gcj-4.3.2-9
> ./usr/share/java
> ./usr/bin/addr2name.awk-4
> ./usr/bin/gappletviewer-4.exe
> ./usr/bin/gc-analyze-4.exe
> ./usr/bin/gcj-4.exe
> ./usr/bin/gcj-dbtool-4.exe
> ./usr/bin/gcjh-4.exe
> ./usr/bin/gij-4.exe
> ./usr/bin/gjar-4.exe
> ./usr/bin/gjarsigner-4.exe
> ./usr/bin/gjavah-4.exe
> ./usr/bin/gkeytool-4.exe
> ./usr/bin/gnative2ascii-4-4.exe
> ./usr/bin/gorbd-4.exe
> ./usr/bin/grmic-4.exe
> ./usr/bin/grmid-4.exe
> ./usr/bin/grmiregistry-4.exe
> ./usr/bin/gserialver-4.exe
> ./usr/bin/gtnameserv-4.exe
> ./usr/bin/i686-pc-cygwin-gcj-4.exe
> ./usr/bin/jcf-dump-4.exe
> ./usr/bin/jv-convert-4.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/jc1.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/jvgenmain.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj-tools.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj-tools.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj-tools.la
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.la
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgcj.spec
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgij.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgij.la
> ./usr/lib/libffi.a
> ./usr/lib/libffi.dll.a
> ./usr/lib/libffi.la
> ./usr/lib/pkgconfig/libgcj-4.3.pc
> ./usr/share/info/cp-tools.info.gz
> ./usr/share/info/gcj.info.gz
> ./usr/share/man/man1/gappletviewer-4.1.gz
> ./usr/share/man/man1/gc-analyze-4.1.gz
> ./usr/share/man/man1/gcj-4.1.gz
> ./usr/share/man/man1/gcj-dbtool-4.1.gz
> ./usr/share/man/man1/gcjh-4.1.gz
> ./usr/share/man/man1/gij-4.1.gz
> ./usr/share/man/man1/gjar-4.1.gz
> ./usr/share/man/man1/gjarsigner-4.1.gz
> ./usr/share/man/man1/gjavah-4.1.gz
> ./usr/share/man/man1/gkeytool-4.1.gz
> ./usr/share/man/man1/gnative2ascii-4.1.gz
> ./usr/share/man/man1/gorbd-4.1.gz
> ./usr/share/man/man1/grmic-4.1.gz
> ./usr/share/man/man1/grmid-4.1.gz
> ./usr/share/man/man1/grmiregistry-4.1.gz
> ./usr/share/man/man1/gserialver-4.1.gz
> ./usr/share/man/man1/gtnameserv-4.1.gz
> ./usr/share/man/man1/jcf-dump-4.1.gz
> ./usr/share/man/man1/jv-convert-4.1.gz

Please create a separate libffi-devel with ffi*.h (which I don't see
listed here) and libffi.*, as there are C packages that use libffi as well.

BTW, why is libgij static-only?

> gcc4-fortran-4.3.2-2
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/finclude
> ./usr/bin/gfortran-4.exe
> ./usr/bin/i686-pc-cygwin-gfortran-4.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/f951.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortran.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortran.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortran.la
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortranbegin.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libgfortranbegin.la
> ./usr/share/info/gfortran.info.gz
> ./usr/share/man/man1/gfortran-4.1.gz
> 
> gcc4-objc-4.3.2-2
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/include/objc
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1obj.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/cc1objplus.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libobjc.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libobjc.dll.a
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/libobjc.la
> 
> gcc4-ada-4.3.2-2
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/adainclude
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/adalib
> ./usr/bin/gnat-4.exe
> ./usr/bin/gnatbind-4.exe
> ./usr/bin/gnatbl-4.exe
> ./usr/bin/gnatchop-4.exe
> ./usr/bin/gnatclean-4.exe
> ./usr/bin/gnatfind-4.exe
> ./usr/bin/gnatkr-4.exe
> ./usr/bin/gnatlink-4.exe
> ./usr/bin/gnatls-4.exe
> ./usr/bin/gnatmake-4.exe
> ./usr/bin/gnatname-4.exe
> ./usr/bin/gnatprep-4.exe
> ./usr/bin/gnatxref-4.exe
> ./usr/lib/gcc/i686-pc-cygwin/4.3.2/gnat1.exe
> ./usr/share/info/gnat-style.info.gz
> ./usr/share/info/gnat_rm.info.gz
> ./usr/share/info/gnat_ugn_unw.info.gz

Otherwise looks okay; cygport will tell you if you're missing anything.

>   Lastly, I've attached my hint files, and again, I could really use a hand
> proof-reading and sanity checking, because there's so many of them I'm almost
> bound to have made a cut and paste error that I've now looked at too many
> times to be able to see.
> 
>   The things to look out for are did I get the sdesc right, is the category
> right (Devel for all, also Libs for the runtimes), and do the requires lines
> look like they're vaguely right or contain any obvious gaping omissions.

objc.hint: /^req/ s/gcc4-c++/gcc4-g++/

I know there was some discussion about deps on _update-info-dir
recently, but AFAICS it only makes sense for texinfo to depend on
_update-info-dir.  It's irrelevant if the package installs .info pages
if the user doesn't have texinfo to view them!

>   Obviously nobody can verify they're actually right without having copies of
> the DLLs themselves, but I used a script to collect the cygcheck output for
> all the DLLs and executables in the packages and generated the attached
> deps.txt file from it, so anyone who was feeling particularly keen could give
> it another cross-check for me..... pretty please? ;-)
> 
>   So, barring last minute hitches, I should be able to upload this around the
> end of the week.  I would welcome any comments or advice on the packaging,
> because this is a major transition and I'd like to get it right and not
> inconvenience any of the users.  Opinions welcome!

That's my 0.02 (CAD).


Yaakov

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkmPycEACgkQpiWmPGlmQSNrxQCdERDPIRVW82GNeU8Qx47x005q
6C4An2vgkywtbAR9mxRgiYTMnXfiVIDw
=zD29
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-09  6:14 ` Yaakov (Cygwin/X)
@ 2009-02-09  7:22   ` Marco Atzeri
  2009-02-09  7:28     ` Yaakov (Cygwin/X)
  0 siblings, 1 reply; 13+ messages in thread
From: Marco Atzeri @ 2009-02-09  7:22 UTC (permalink / raw)
  To: cygwin-apps, Yaakov (Cygwin/X)



--- Lun 9/2/09, Yaakov (Cygwin/X)  ha scritto:

> Da: Yaakov (Cygwin/X) 
> Oggetto: Re: [RFC] GCC-4 new packaging.
> A: cygwin-apps@cygwin.com
> Data: Lunedì 9 febbraio 2009, 07:14
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> >   Note also that there is no gcc4-runtime-4.3.2-2,
> which was the package that
> > contained the old unversioned cyggcc_s.dll we've
> been using so far.  In order
> > to obsolete it, can I just update the existing
> setup.hint to move it into the
> > _obsolete category, or does there need to be a version
> number change?
> 
> Since the files don't collide (libgcc1 is now
> versioned), just mark it
> _obsolete; no version bump is necessary.

Hi Yaakov,
is not needed a
requires:libgcc1

to pull in libgcc1 for the packages that now need gcc4-runtime ?

I suspect a version bump plus a empty tar file 
is also needed to avoid colliding file between 
gcc4-runtime files that should be removed and the 
new libgcc1 packages.

 
> 
> Yaakov
> 

Marco


      Passa a Yahoo! Mail.

La webmail che ti offre GRATIS spazio illimitato, 
antispam e messenger integrato.
http://it.mail.yahoo.com/              

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-09  7:22   ` Marco Atzeri
@ 2009-02-09  7:28     ` Yaakov (Cygwin/X)
  0 siblings, 0 replies; 13+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-02-09  7:28 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Marco Atzeri wrote:
> Hi Yaakov,
> is not needed a
> requires:libgcc1
> 
> to pull in libgcc1 for the packages that now need gcc4-runtime ?
>
> I suspect a version bump plus a empty tar file 
> is also needed to avoid colliding file between 
> gcc4-runtime files that should be removed and the 
> new libgcc1 packages.

No.  gcc4-runtime contains only usr/bin/cyggcc_s.dll.  libgcc1 will
provide usr/bin/cyggcc_s-1.dll, so there is no collision and no
dependency.  All that is necessary is to mark gcc4-runtime _obsolete.


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkmP2wUACgkQpiWmPGlmQSP7DQCglwfZRARhQgbXEK6ASRLrnKcX
3T0AoMjk9SIalMvbW6I/0g2RCfwaFi47
=JtEm
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-09  3:28 [RFC] GCC-4 new packaging Dave Korn
  2009-02-09  6:14 ` Yaakov (Cygwin/X)
@ 2009-02-09  8:04 ` Reini Urban
  2009-02-10 16:39 ` Dave Korn
  2 siblings, 0 replies; 13+ messages in thread
From: Reini Urban @ 2009-02-09  8:04 UTC (permalink / raw)
  To: cygwin-apps

2009/2/9 Dave Korn:
>  I'm about ready to release a new compiler package.  This is going to mean a
> whole bunch of new packages and one obsoletion, and I was hoping I could get a
> hand proof-reading the setup hints and any comments anyone has on packaging,
> names and categories.
>
> gcc4-libffi4-runtime-4.3.2-2
> ./usr/bin/cygffi-4.dll

> gcc4-java-4.3.2-2
> ./usr/lib/libffi.a
> ./usr/lib/libffi.dll.a
> ./usr/lib/libffi.la

Those sound suspicious to me.
Yaakov has the latest libffi5  3.0.8-1 (API 5 with version 3.0.8)

Do you really have only API 4?
-- 
Reini Urban
http://phpwiki.org/              http://murbreak.at/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-09  3:28 [RFC] GCC-4 new packaging Dave Korn
  2009-02-09  6:14 ` Yaakov (Cygwin/X)
  2009-02-09  8:04 ` Reini Urban
@ 2009-02-10 16:39 ` Dave Korn
  2009-02-10 17:03   ` _update-info-dir (was Re: [RFC] GCC-4 new packaging.) Christopher Faylor
                     ` (2 more replies)
  2 siblings, 3 replies; 13+ messages in thread
From: Dave Korn @ 2009-02-10 16:39 UTC (permalink / raw)
  To: cygwin-apps

Dave Korn wrote:

>   I'm about ready to release a new compiler package.  This is going to mean a
> whole bunch of new packages and one obsoletion, and I was hoping I could get a
> hand proof-reading the setup hints and any comments anyone has on packaging,
> names and categories.

  Thanks for all the comments, which I'll summarize in one response.

Yaakov (Cygwin/X) wrote:

> The gcc4- and -runtime are just confusing; these should be just libgcc1,
> libgomp1, etc.  Remember that these will be runtime dependencies for
> other packages, and these names are consistent with (most) other runtime
> libraries, and match those in Debian.

  I think I just blindly assumed all the cygport package array entries had to
begin with PN but on re-RTFM-ing after my second cup of coffee, I see that's
not remotely the case, so I'll certainly do that.

>> gcc4-java-runtime-config-4.3.2-2
> I would call this libgcj-common, as in Debian.

  Will do.

> What is the reason for separating gcc and gcc-core?  Yes, I know that
> gcc-3.4 did this also, but I don't remember the rationale.

  I think in 3.x it was to do with some kind of historical legacy thing.  I've
adopted the same nomenclature and split in 4.x, but not for the same reason.

  In 4.x I figure that the most common combination of languages that people
want will be "C and C++" by a hundred to one or more, so I decided that I'd
make it work so that the plain vanilla "gcc" package was a shortcut for "C and
C++".  Not wanting to deny anyone the option of installing C-only implied that
I had to split it out into some separate package, so I chose the same name as
the 3.x version used.

  It's really just about user convenience and least surprise: a lot of end
users would like to just install a package called "GCC" and be able to compile
downloaded sources without having to think about what languages are involved.
 So unless anyone has major objections or can foresee any serious problems,
I'm going to continue packaging it this way.

> I'm tempted to suggest a libstdc++6-devel (yes, versioned, because the
> includes and link libs are in versioned directories), for C++ libtool
> libraries that provide a C interface (and hence may be built against
> with just gcc).

  Interesting thought.  I'm not entirely happy with encouraging the use of the
wrong driver.

> Please create a separate libffi-devel with ffi*.h (which I don't see
> listed here) and libffi.*, as there are C packages that use libffi as well.

  Okeydokey, can do.

> BTW, why is libgij static-only?

  No idea.  Maybe it's supposed to be that way, or maybe something went wrong
in my build, I'll double-check; thanks for spotting it.

> Otherwise looks okay; cygport will tell you if you're missing anything.

  Ta.  I think I've successfully de-forkified the whole local-hacked-cygport
thing now.

> objc.hint: /^req/ s/gcc4-c++/gcc4-g++/

  Again, ta!  That's just the kind of detail that your eyes stop seeing after
a while :)

> I know there was some discussion about deps on _update-info-dir
> recently, but AFAICS it only makes sense for texinfo to depend on
> _update-info-dir.  It's irrelevant if the package installs .info pages
> if the user doesn't have texinfo to view them!

  ?? But doesn't that mean the info directory page would only get updated
every time there's a new release of texinfo?  I'm really confused here.  I
thought we used the _update-info-dir dependency to save having to add the
postinstall scripts built by prep_gnu_info.sh.  How would "install-info" get
called on the new info files?

> That's my 0.02 (CAD).

  Thanks, eh!

Marco Atzeri wrote:

> is not needed a
> requires:libgcc1

> I suspect a version bump plus a empty tar file

  Marco, I think Yaakov's explanation is right, it looks that way to me.

Reini Urban wrote:

> Those sound suspicious to me.
> Yaakov has the latest libffi5  3.0.8-1 (API 5 with version 3.0.8)
>
> Do you really have only API 4?

  I have .... whatever version of libffi was in the GCC tree at the time 4.3
was branched.  I don't know how closely tied to the particular API the
compiler is.  This means that if I create a libffi-devel package, it could
clash with a cygwin ports installation, and users might get a mismatch (cygwin
ports libffi5 with gcc-4 libffi-devel for libffi4.

  I'm not sure what to do about this yet.  Yaakov, any ideas?

 (My GNAT problems look tractable, btw, exception handling is broken because
something's getting lost in the .initfini and the ctors/dtors tables come up
emty, so no eh data gets registered; this could be related to using static
libgcc with ada and could even be an indication of fundamental problems with
exceptions in static libgcc, so I will investigate it a bunch more).

    cheers,
      DaveK


^ permalink raw reply	[flat|nested] 13+ messages in thread

* _update-info-dir (was Re: [RFC] GCC-4 new packaging.)
  2009-02-10 16:39 ` Dave Korn
@ 2009-02-10 17:03   ` Christopher Faylor
  2009-02-10 17:18     ` Dave Korn
  2009-02-10 18:54   ` [RFC] GCC-4 new packaging Yaakov (Cygwin/X)
  2009-02-13 20:53   ` Yaakov (Cygwin/X)
  2 siblings, 1 reply; 13+ messages in thread
From: Christopher Faylor @ 2009-02-10 17:03 UTC (permalink / raw)
  To: cygwin-apps

On Tue, Feb 10, 2009 at 04:47:29PM +0000, Dave Korn wrote:
>  ?? But doesn't that mean the info directory page would only get updated
>every time there's a new release of texinfo?  I'm really confused here.  I
>thought we used the _update-info-dir dependency to save having to add the
>postinstall scripts built by prep_gnu_info.sh.  How would "install-info" get
>called on the new info files?

I don't know why dependencies on _update-info-dir keep creeping into
various setup.hint files but I have just taken a sweep through the
setup.hints in the release and release-2 directories.

You should not be adding this dependency to your setup.hint file.

cgf

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: _update-info-dir (was Re: [RFC] GCC-4 new packaging.)
  2009-02-10 17:03   ` _update-info-dir (was Re: [RFC] GCC-4 new packaging.) Christopher Faylor
@ 2009-02-10 17:18     ` Dave Korn
  2009-02-10 18:33       ` Yaakov (Cygwin/X)
  0 siblings, 1 reply; 13+ messages in thread
From: Dave Korn @ 2009-02-10 17:18 UTC (permalink / raw)
  To: cygwin-apps

Christopher Faylor wrote:
> On Tue, Feb 10, 2009 at 04:47:29PM +0000, Dave Korn wrote:
>>  ?? But doesn't that mean the info directory page would only get updated
>> every time there's a new release of texinfo?  I'm really confused here.  I
>> thought we used the _update-info-dir dependency to save having to add the
>> postinstall scripts built by prep_gnu_info.sh.  How would "install-info" get
>> called on the new info files?
> 
> I don't know why dependencies on _update-info-dir keep creeping into
> various setup.hint files but I have just taken a sweep through the
> setup.hints in the release and release-2 directories.
> 
> You should not be adding this dependency to your setup.hint file.

  OK, I won't.


  I must be missing something here.  How and when does the info directory get
updated?  Is running install-info on newly added info files under
/usr/share/info superfluous for some reason that I don't know about?

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: _update-info-dir (was Re: [RFC] GCC-4 new packaging.)
  2009-02-10 17:18     ` Dave Korn
@ 2009-02-10 18:33       ` Yaakov (Cygwin/X)
  2009-02-10 19:00         ` Dave Korn
  0 siblings, 1 reply; 13+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-02-10 18:33 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dave Korn wrote:
>   I must be missing something here.  How and when does the info directory get
> updated?  Is running install-info on newly added info files under
> /usr/share/info superfluous for some reason that I don't know about?

The _update-info-dir package version continually changes, so each time
you download, you get a new version, which forces install-info to be run
again.


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkmRyIkACgkQpiWmPGlmQSPXlACgggRvT//ITlW8f6zJLGxxVGx2
coIAnipzuCvV694P9iMIQ9TmEcTtdU4P
=x+xn
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-10 16:39 ` Dave Korn
  2009-02-10 17:03   ` _update-info-dir (was Re: [RFC] GCC-4 new packaging.) Christopher Faylor
@ 2009-02-10 18:54   ` Yaakov (Cygwin/X)
  2009-02-10 19:05     ` Dave Korn
  2009-02-13 20:53   ` Yaakov (Cygwin/X)
  2 siblings, 1 reply; 13+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-02-10 18:54 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dave Korn wrote:
>   I have .... whatever version of libffi was in the GCC tree at the time 4.3
> was branched.  I don't know how closely tied to the particular API the
> compiler is.  This means that if I create a libffi-devel package, it could
> clash with a cygwin ports installation, and users might get a mismatch (cygwin
> ports libffi5 with gcc-4 libffi-devel for libffi4.
> 
>   I'm not sure what to do about this yet.  Yaakov, any ideas?

AFAICS in Debian sid, the only libffi is provided by the new standalone
libffi-3.0.8, not by gcc-4.3.  That is a change from etch, where
libffi4{,-dev} comes from gcc-4.1.  Can gcc-4.3 be configured to use the
new libffi instead of its own version?

If not, then I would suggest moving gcc's libffi together with the other
GCC libraries, and I'll move my standalone libffi out of /usr/lib as
well to avoid any problems.

(BTW, your libtool patch to force the DLLs of non-module libraries which
are deeper than ${prefix}/lib into ${prefix}/bin should be considered
for inclusion in libtool itself, as gcc is not unique in that regard.)

Also, will a binutils update be required as well for proper usage of
shared libstdc++ and friends?


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkmRzW4ACgkQpiWmPGlmQSOPfwCg4VQoPuwwKiHU0KjR/6wbOGWO
h78Anjj139bxqRE7Oso/crogtBQReGMQ
=Deic
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: _update-info-dir (was Re: [RFC] GCC-4 new packaging.)
  2009-02-10 18:33       ` Yaakov (Cygwin/X)
@ 2009-02-10 19:00         ` Dave Korn
  0 siblings, 0 replies; 13+ messages in thread
From: Dave Korn @ 2009-02-10 19:00 UTC (permalink / raw)
  To: cygwin-apps

Yaakov (Cygwin/X) wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> Dave Korn wrote:
>>   I must be missing something here.  How and when does the info directory get
>> updated?  Is running install-info on newly added info files under
>> /usr/share/info superfluous for some reason that I don't know about?
> 
> The _update-info-dir package version continually changes, so each time
> you download, you get a new version, which forces install-info to be run
> again.

  Thanks, that's the missing piece of the puzzle I didn't have! :)

  Well, not having to bother with either postinstall scripts OR dependencies
is even easier.  I have no problem complying with that!

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-10 18:54   ` [RFC] GCC-4 new packaging Yaakov (Cygwin/X)
@ 2009-02-10 19:05     ` Dave Korn
  0 siblings, 0 replies; 13+ messages in thread
From: Dave Korn @ 2009-02-10 19:05 UTC (permalink / raw)
  To: cygwin-apps

Yaakov (Cygwin/X) wrote:

[ libffi considerations aside for the minute, ]

> (BTW, your libtool patch to force the DLLs of non-module libraries which
> are deeper than ${prefix}/lib into ${prefix}/bin should be considered
> for inclusion in libtool itself, as gcc is not unique in that regard.)

  Yes, I found a thread about on the libtool list from sometime last year.  I
intend to clean it up and submit it when I get a moment.  (Needs moar robust
and less lolspeak....)

> Also, will a binutils update be required as well for proper usage of
> shared libstdc++ and friends?

  Nope, but it will be needed (or a local build from CVS) to *build* shared
libstdc++.  I'll mention that in the README under build instructions.

    cheers,
      DaveK


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [RFC] GCC-4 new packaging.
  2009-02-10 16:39 ` Dave Korn
  2009-02-10 17:03   ` _update-info-dir (was Re: [RFC] GCC-4 new packaging.) Christopher Faylor
  2009-02-10 18:54   ` [RFC] GCC-4 new packaging Yaakov (Cygwin/X)
@ 2009-02-13 20:53   ` Yaakov (Cygwin/X)
  2 siblings, 0 replies; 13+ messages in thread
From: Yaakov (Cygwin/X) @ 2009-02-13 20:53 UTC (permalink / raw)
  To: cygwin-apps

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dave Korn wrote:
> Yaakov (Cygwin/X) wrote:
>> I'm tempted to suggest a libstdc++6-devel (yes, versioned, because the
>> includes and link libs are in versioned directories), for C++ libtool
>> libraries that provide a C interface (and hence may be built against
>> with just gcc).
> 
>   Interesting thought.  I'm not entirely happy with encouraging the use of the
> wrong driver.

I should clarify that a libstdc++6-devel package should really only
contain the link libraries; the headers can stay with gcc4-g++ as they
are useless without cc1plus, and won't be exposed by the public headers
of those C++-with-C-interface libraries.


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkmV3asACgkQpiWmPGlmQSMgnACg/ZIh2Q4vxuoxKvaGmaHcMzFZ
eCUAnRKpADg2TngLlLB71vSfxrDiuKUl
=K16l
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2009-02-13 20:53 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-09  3:28 [RFC] GCC-4 new packaging Dave Korn
2009-02-09  6:14 ` Yaakov (Cygwin/X)
2009-02-09  7:22   ` Marco Atzeri
2009-02-09  7:28     ` Yaakov (Cygwin/X)
2009-02-09  8:04 ` Reini Urban
2009-02-10 16:39 ` Dave Korn
2009-02-10 17:03   ` _update-info-dir (was Re: [RFC] GCC-4 new packaging.) Christopher Faylor
2009-02-10 17:18     ` Dave Korn
2009-02-10 18:33       ` Yaakov (Cygwin/X)
2009-02-10 19:00         ` Dave Korn
2009-02-10 18:54   ` [RFC] GCC-4 new packaging Yaakov (Cygwin/X)
2009-02-10 19:05     ` Dave Korn
2009-02-13 20:53   ` Yaakov (Cygwin/X)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).