[Cooker] libobjc_gc.so missing from the gcc srpm build

View: New views
8 Messages — Rating Filter:   Alert me  

[Cooker] libobjc_gc.so missing from the gcc srpm build

by Mika Laitio :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I would need to get the libobjc_gc.so to be able to build the gnustep
libraries with gc support enabled. It seems that this library should be
build as a part of
gcc build with some flags enabled.

I tried to test that by myself by trying to rebuild the
http://ftp.sunet.se/pub/os/Linux/distributions/mandrakelinux/official/2009.1/SRPMS/main/release/gcc-4.3.2-5mnb2.src.rpm
but it will fail for me for in patching phase for many patches.

I tried with following steps and I am wondering whether I am doing
something wrong...
- rpm -ivh gcc-4.3.2-5mnb2.src.rpm
- cd rpmbuild/SPECS
- rpmbuild -bb gcc.spec

First failing patch is gcc33-pass-slibdir.patch, but once I fixed that
manually I am getting similar looking patch errors in other patches like
gcc33-multi-do-libdir.patch

I am running 2009.1 and therefore trying to build the 2009.1 versions from
the rpms in x86_64 machine. Are those patches in srpm really the ones that
has been
used for building the rpm and am I missing some parameters for the
rpmbuild command?

Mika

Re: [Cooker] libobjc_gc.so missing from the gcc srpm build

by Michael Scherer-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Le mercredi 24 juin 2009 à 06:39 +0300, Mika Laitio a écrit :
> I would need to get the libobjc_gc.so to be able to build the gnustep
> libraries with gc support enabled. It seems that this library should be
> build as a part of
> gcc build with some flags enabled.

What flags ?

> I tried to test that by myself by trying to rebuild the
> http://ftp.sunet.se/pub/os/Linux/distributions/mandrakelinux/official/2009.1/SRPMS/main/release/gcc-4.3.2-5mnb2.src.rpm
> but it will fail for me for in patching phase for many patches.
>
> I tried with following steps and I am wondering whether I am doing
> something wrong...
> - rpm -ivh gcc-4.3.2-5mnb2.src.rpm
> - cd rpmbuild/SPECS
> - rpmbuild -bb gcc.spec
>
> First failing patch is gcc33-pass-slibdir.patch, but once I fixed that
> manually I am getting similar looking patch errors in other patches like
> gcc33-multi-do-libdir.patch

What does the error look like ?

> I am running 2009.1 and therefore trying to build the 2009.1 versions from
> the rpms in x86_64 machine. Are those patches in srpm really the ones that
> has been
> used for building the rpm and am I missing some parameters for the
> rpmbuild command?

Yes, that is what have been used.

--
Michael Scherer


Re: [Cooker] libobjc_gc.so missing from the gcc srpm build

by Mika Laitio :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sorry it took a while to respond...

> Le mercredi 24 juin 2009 à 06:39 +0300, Mika Laitio a écrit :
>> I would need to get the libobjc_gc.so to be able to build the gnustep
>> libraries with gc support enabled. It seems that this library should be
>> build as a part of
>> gcc build with some flags enabled.
>
> What flags ?

According to mail link below, gcc would require a flag:
"--enable-objc-gc", but I have not been able to test it yet.
http://osdir.com/ml/lib.gnustep.general/2001-12/msg00242.html

>> I tried to test that by myself by trying to rebuild the
>> http://ftp.sunet.se/pub/os/Linux/distributions/mandrakelinux/official/2009.1/SRPMS/main/release/gcc-4.3.2-5mnb2.src.rpm
>> but it will fail for me for in patching phase for many patches.
>>
>> I tried with following steps and I am wondering whether I am doing
>> something wrong...
>> - rpm -ivh gcc-4.3.2-5mnb2.src.rpm
>> - cd rpmbuild/SPECS
>> - rpmbuild -bb gcc.spec
>>
>> First failing patch is gcc33-pass-slibdir.patch, but once I fixed that
>> manually I am getting similar looking patch errors in other patches like
>> gcc33-multi-do-libdir.patch
>
> What does the error look like ?
This is the first failure after issuing commands:
rpm -ivh gcc-4.3.2-5mnb2.src.rpm
cd rpmbuild/SPECS
rpmbuild -bb gcc.spec

[lamikr@iiris SPECS]$ rpmbuild -bb gcc.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.58AuoS
+ umask 022
+ cd /home/lamikr/rpmbuild/BUILD
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ cd /home/lamikr/rpmbuild/BUILD
+ rm -rf gcc-4.3.2
+ /usr/bin/bzip2 -dc /home/lamikr/rpmbuild/SOURCES/gcc-4.3.2.tar.bz2
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd gcc-4.3.2
+ /usr/bin/bzip2 -dc
/home/lamikr/rpmbuild/SOURCES/gcc35-gpc-20040516.tar.bz2
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ echo 'Patch #1 (gcc33-pr11536-testcase.patch):'
Patch #1 (gcc33-pr11536-testcase.patch):
+ /usr/bin/patch -U -s -p1 -b --suffix .pr11536-testcase --fuzz=0 -i
/home/lamikr/rpmbuild/SOURCES/gcc33-pr11536-testcase.patch
+ echo 'Patch #2 (gcc33-pr9929-testcase.patch):'
Patch #2 (gcc33-pr9929-testcase.patch):
+ /usr/bin/patch -U -s -p1 -b --suffix .pr9929-testcase --fuzz=0 -i
/home/lamikr/rpmbuild/SOURCES/gcc33-pr9929-testcase.patch
+ echo 'Patch #101 (gcc33-pass-slibdir.patch):'
Patch #101 (gcc33-pass-slibdir.patch):
+ /usr/bin/patch -U -s -p1 -b --suffix .pass-slibdir --fuzz=0 -i
/home/lamikr/rpmbuild/SOURCES/gcc33-pass-slibdir.patch
1 out of 2 hunks FAILED -- saving rejects to file Makefile.in.rej
error: Bad exit status from /var/tmp/rpm-tmp.58AuoS (%prep)


RPM build errors:
     Bad exit status from /var/tmp/rpm-tmp.58AuoS (%prep)


>
>> I am running 2009.1 and therefore trying to build the 2009.1 versions from
>> the rpms in x86_64 machine. Are those patches in srpm really the ones that
>> has been
>> used for building the rpm and am I missing some parameters for the
>> rpmbuild command?
>
> Yes, that is what have been used.
>
>

Re: [Cooker] libobjc_gc.so missing from the gcc srpm build

by Christophe Fergeau-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Mika Laitio a écrit :
>
> + echo 'Patch #101 (gcc33-pass-slibdir.patch):'
> Patch #101 (gcc33-pass-slibdir.patch):
> + /usr/bin/patch -U -s -p1 -b --suffix .pass-slibdir --fuzz=0 -i
> /home/lamikr/rpmbuild/SOURCES/gcc33-pass-slibdir.patch
> 1 out of 2 hunks FAILED -- saving rejects to file Makefile.in.rej
> error: Bad exit status from /var/tmp/rpm-tmp.58AuoS (%prep)
This happens because the patches are fuzzy and don't apply with
--fuzz=0. You can work around this by adding
%define _default_patch_fuzz 2
to the beginning of gcc.spec

Hope that helps,

Christophe

Re: [Cooker] libobjc_gc.so missing from the gcc srpm build

by Mika Laitio :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>>  + echo 'Patch #101 (gcc33-pass-slibdir.patch):'
>>  Patch #101 (gcc33-pass-slibdir.patch):
>>  + /usr/bin/patch -U -s -p1 -b --suffix .pass-slibdir --fuzz=0 -i
>>  /home/lamikr/rpmbuild/SOURCES/gcc33-pass-slibdir.patch
>>  1 out of 2 hunks FAILED -- saving rejects to file Makefile.in.rej
>>  error: Bad exit status from /var/tmp/rpm-tmp.58AuoS (%prep)
> This happens because the patches are fuzzy and don't apply with --fuzz=0. You
> can work around this by adding
> %define _default_patch_fuzz 2
> to the beginning of gcc.spec

Thanks, it solved the problem for getting the patches to be applied from
the gcc 4.3.2 srpm. But now after a while I am getting build errors at
least in the rpmbuild/BUILD/gcc-4.3.2/libcpp/macro.c

What version of gcc is itself used for building the gcc-4.3.2.rpm for the
mandriva 2009.1? Maybe the gcc 4.3.2 is too new/strict for it... The error
I get is: (two functions which try to report error log)


rpmbuild -bb gcc.spec
...

/home/lamikr/rpmbuild/BUILD/gcc-4.3.2/obj-i586-manbo-linux-gnu/./prev-gcc/xgcc
-B/home/lamikr/rpmbuild/BUILD/gcc-4.3.2/obj-i586-manbo-linux-gnu/./prev-gcc/
-B/usr/i586-manbo-linux-gnu/bin/  -I../../libcpp -I.
-I../../libcpp/../include -I../../libcpp/include  -O2 -g -pipe -Wformat
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4  -march=i586 -mtune=generic
-fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute
-pedantic -Wno-long-long  -I../../libcpp -I. -I../../libcpp/../include
-I../../libcpp/include  -c -o macro.o -MT macro.o -MMD -MP -MF
.deps/macro.Po ../../libcpp/macro.c
../../libcpp/macro.c: In function create_iso_definition:
../../libcpp/macro.c:1659: error: format not a string literal and no
format arguments
../../libcpp/macro.c:1672: error: format not a string literal and no
format arguments

Mika

Re: [Cooker] libobjc_gc.so missing from the gcc srpm build

by Bugzilla from arvidjaar@mail.ru :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Friday 03 of July 2009 02:39:17 Mika Laitio wrote:
> ../../libcpp/macro.c: In function create_iso_definition:
> ../../libcpp/macro.c:1659: error: format not a string literal and no
> format arguments
> ../../libcpp/macro.c:1672: error: format not a string literal and no
> format arguments
>
> Mika

http://wiki.mandriva.com/en/Development/Packaging/Problems#format_not_a_string_literal_and_no_format_arguments


signature.asc (204 bytes) Download Attachment

Re: [Cooker] libobjc_gc.so missing from the gcc srpm build

by Mika Laitio :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> On Friday 03 of July 2009 02:39:17 Mika Laitio wrote:
>> ../../libcpp/macro.c: In function create_iso_definition:
>> ../../libcpp/macro.c:1659: error: format not a string literal and no
>> format arguments
>> ../../libcpp/macro.c:1672: error: format not a string literal and no
>> format arguments
>>
>> Mika
>
> http://wiki.mandriva.com/en/Development/Packaging/Problems#format_not_a_string_literal_and_no_format_arguments

Yes, making a that kind of changes described there helped. But later there
started to come yet other build problems because 2009.1 uses now a newer
libtool version than what was used for generating the autoconf scripts for
the gcc src rpm. Maybe it's better that instead of fighting with 2009.1
version of gcc, I concentrate to cooker version... I actually already
started working with a that one by installing cooker to qemu image and
building src rpm's there with better success :-)

So attached is the patch against the gcc.spec in gcc-4.4.0-3mnb2.src.rpm
that enables the libobjc_gc.so build and packages it (and .a file) to rpm.
Would it be possible that somebody commits that change to gcc?

In addition the gc-7.1.3mdv2009.1.src.rpm that has been maintained by the
Adam Williamson and provides the libgc.so from the boehm-gc requires also
a patch that is also attached, otherwise the src rpm build will fail on
the cooked machine on the rpm package phase because new version of
/usr/bin/install does not accept same files specified more than once
as a parameters... So could somebody commit that patch also to Mandriva
repo and regenerate srpm and rpm?

Mika
--- gcc.spec_orig 2009-07-16 11:26:33.000000000 +0300
+++ gcc.spec 2009-07-16 11:30:53.000000000 +0300
@@ -1364,6 +1364,7 @@
 %endif
 %if %{build_objc}
 LANGUAGES="$LANGUAGES,objc"
+LIBOBJC_FLAGS="--enable-objc-gc"
 %endif
 %if %{build_objcp}
 LANGUAGES="$LANGUAGES,obj-c++"
@@ -1462,7 +1463,8 @@
  --mandir=%{_mandir} --infodir=%{_infodir} --enable-checking=release \
  --enable-languages="$LANGUAGES" $PROGRAM_PREFIX $PROGRAM_SUFFIX \
  --build=%{_target_platform} --host=%{_target_platform} $CROSS_FLAGS $TARGET_FLAGS \
- --with-system-zlib $LIBC_FLAGS $LIBSTDCXX_FLAGS $LIBJAVA_FLAGS $SSP_FLAGS $MUDFLAP_FLAGS $LIBFFI_FLAGS \
+ --with-system-zlib $LIBC_FLAGS $LIBOBJC_FLAGS $LIBSTDCXX_FLAGS $LIBJAVA_FLAGS $SSP_FLAGS \
+ $MUDFLAP_FLAGS $LIBFFI_FLAGS \
  --disable-werror $LIBGOMP_FLAGS \
  $CLOOG_FLAGS --with-python-dir=%{python_dir}
 touch ../gcc/c-gperf.h
@@ -2666,9 +2668,15 @@
 #
 %{target_libdir}/libobjc.so.%{libobjc_major}
 %{target_libdir}/libobjc.so.%{libobjc_major}.0.0
+%{target_libdir}/libobjc_gc.a
+%{target_libdir}/libobjc_gc.so
+%{target_libdir}/libobjc_gc.so.%{libobjc_major}
+%{target_libdir}/libobjc_gc.so.%{libobjc_major}.0.0
 %if %isarch %{biarches}
 %{_prefix}/lib/libobjc.so.%{libobjc_major}
 %{_prefix}/lib/libobjc.so.%{libobjc_major}.0.0
+%{_prefix}/lib/libobjc_gc.so.%{libobjc_major}
+%{_prefix}/lib/libobjc_gc.so.%{libobjc_major}.0.0
 %endif
 %endif
 

diff -Naur boehm-gc-rpmbuild-orig/SOURCES/avoid_install_same_headers_twice.patch boehm-gc-rpmbuild-new/SOURCES/avoid_install_same_headers_twice.patch
--- boehm-gc-rpmbuild-orig/SOURCES/avoid_install_same_headers_twice.patch 1970-01-01 02:00:00.000000000 +0200
+++ boehm-gc-rpmbuild-new/SOURCES/avoid_install_same_headers_twice.patch 2009-07-16 12:13:37.000000000 +0300
@@ -0,0 +1,222 @@
+diff -Naur gc-7.1/Makefile.am gc-7.1-new/Makefile.am
+--- gc-7.1/Makefile.am 2009-07-15 13:12:44.000000000 +0300
++++ gc-7.1-new/Makefile.am 2009-07-15 13:13:15.000000000 +0300
+@@ -96,7 +96,7 @@
+
+ if CPLUSPLUS
+ lib_LTLIBRARIES += libgccpp.la
+-pkginclude_HEADERS += include/gc_cpp.h include/gc_allocator.h
++#pkginclude_HEADERS += include/gc_cpp.h include/gc_allocator.h
+ libgccpp_la_SOURCES = gc_cpp.cc
+ libgccpp_la_LIBADD = ./libgc.la
+ libgccpp_la_LDFLAGS = -version-info 1:3:0 -no-undefined
+diff -Naur gc-7.1/Makefile.am~ gc-7.1-new/Makefile.am~
+--- gc-7.1/Makefile.am~ 1970-01-01 02:00:00.000000000 +0200
++++ gc-7.1-new/Makefile.am~ 2009-07-15 13:12:47.000000000 +0300
+@@ -0,0 +1,206 @@
++# Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
++#
++# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
++# OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
++#
++# Permission is hereby granted to use or copy this program
++# for any purpose,  provided the above notices are retained on all copies.
++# Permission to modify the code and to distribute modified code is granted,
++# provided the above notices are retained, and a notice that the code was
++# modified is included with the above copyright notice.
++#
++# Original author: Tom Tromey
++# Severely truncated by Hans-J. Boehm
++# Modified by: Grzegorz Jakacki <jakacki at acm dot org>
++# Modified by: Petter Urkedal <petter.urkedal@...> (2005-04)
++
++## Process this file with automake to produce Makefile.in.
++
++## FIXME: `make distcheck' in this directory will not currently work.
++##     This is most likely to the explicit flags passed to submakes.
++
++# We currently use the source files directly from libatomic_ops, if we
++# use the internal version.  This is done since libatomic_ops doesn't
++# use libtool, since it has no real use for it.  But that seems to make
++# it hard to use either the resulting object files or libraries.
++# Thus there seems too be no real reason to recusively build in the
++# libatomic_ops directory.
++# if USE_INTERNAL_LIBATOMICS_OPS
++# SUBDIRS = @maybe_libatomic_ops@
++# else
++# SUBDIRS =
++# endif
++SUBDIRS =
++
++# Initialize variables so that we can declare files locally.
++EXTRA_DIST =
++lib_LTLIBRARIES =
++include_HEADERS =
++pkginclude_HEADERS =
++dist_noinst_HEADERS =
++check_PROGRAMS =
++TESTS =
++
++pkgconfigdir = $(libdir)/pkgconfig
++dist_pkgconfig_DATA = bdw-gc.pc
++
++# C Library
++# ---------
++
++lib_LTLIBRARIES += libgc.la
++libgc_la_SOURCES = \
++ allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
++ dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c \
++ malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
++ obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
++ specific.c stubborn.c typd_mlc.c \
++ backgraph.c thread_local_alloc.c
++
++# C Library: Architecture Dependent
++# ---------------------------------
++
++if PTHREADS
++libgc_la_SOURCES += pthread_support.c pthread_stop_world.c
++endif
++
++if DARWIN_THREADS
++libgc_la_SOURCES += darwin_stop_world.c
++endif
++
++if WIN32_THREADS
++libgc_la_SOURCES += win32_threads.c
++endif
++
++if USE_INTERNAL_LIBATOMIC_OPS
++nodist_libgc_la_SOURCES = ./atomic_ops.c
++endif
++  
++if NEED_ATOMIC_OPS_ASM
++nodist_libgc_la_SOURCES = ./atomic_ops_sysdeps.S
++endif
++
++# Include THREADDLLIBS here to ensure that the correct versions of
++# linuxthread semaphore functions get linked:
++libgc_la_LIBADD = @addobjs@ $(THREADDLLIBS) $(UNWINDLIBS)
++libgc_la_DEPENDENCIES = @addobjs@
++libgc_la_LDFLAGS = $(extra_ldflags_libgc) -version-info 1:3:0 -no-undefined
++
++EXTRA_libgc_la_SOURCES = alpha_mach_dep.S \
++    mips_sgi_mach_dep.s mips_ultrix_mach_dep.s \
++    rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
++    sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
++
++
++# C++ Interface
++# -------------
++
++if CPLUSPLUS
++lib_LTLIBRARIES += libgccpp.la
++pkginclude_HEADERS += include/gc_cpp.h include/gc_allocator.h
++libgccpp_la_SOURCES = gc_cpp.cc
++libgccpp_la_LIBADD = ./libgc.la
++libgccpp_la_LDFLAGS = -version-info 1:3:0 -no-undefined
++endif
++
++# FIXME: If Visual C++ users use Makefile.am, this should go into
++# pkginclude_HEADERS with proper AM_CONDITIONALization.  Otherwise
++# delete this comment.
++EXTRA_DIST += gc_cpp.cpp
++
++
++# Misc
++# ----
++
++AM_CXXFLAGS = @GC_CFLAGS@
++AM_CFLAGS = @GC_CFLAGS@
++
++## FIXME: relies on internal code generated by automake.
++## FIXME: ./configure --enable-dependency-tracking should be used
++#all_objs = @addobjs@ $(libgc_la_OBJECTS)
++#$(all_objs) : include/private/gcconfig.h include/private/gc_priv.h \
++#include/private/gc_hdrs.h include/gc.h include/gc_gcj.h \
++#include/gc_pthread_redirects.h include/gc_config_macros.h \
++#include/private/thread_local_alloc.h include/private_support.h \
++#include/private/pthread_stop_world.h \
++#include/gc_mark.h @addincludes@
++
++## FIXME: we shouldn't have to do this, but automake forces us to.
++## We use -Wp,-P to strip #line directives.  Irix `as' chokes on
++## these.
++if COMPILER_XLC
++  ## XLC neither requires nor tolerates the unnecessary assembler goop
++  ASM_CPP_OPTIONS =
++else
++  ## We use -Wp,-P to strip #line directives.  Irix `as' chokes on
++  ## these.
++  ASM_CPP_OPTIONS = -Wp,-P -x assembler-with-cpp
++endif
++.s.lo:
++ $(LTCOMPILE) $(ASM_CPP_OPTIONS) -c $<
++
++.S.lo:
++ $(LTCOMPILE) $(ASM_CPP_OPTIONS) -c $<
++
++## We need to add DEFS to assembler flags
++## :FIXME: what if assembler does not accept -D... ?
++##     (use Autoconf to prepare ASDEFS ???)
++
++CCASFLAGS += $(DEFS)
++
++dist_noinst_SCRIPTS = callprocs configure.host
++    ## callprocs --- used by Makefile.{dj,direct}
++    ## configure.host --- used by Makefile.{am,dj,direct}
++
++# headers which are not installed
++# (see include/include.am for more)
++#
++
++# documentation which is not installed
++#
++EXTRA_DIST += README.QUICK
++
++# other makefiles
++# :GOTCHA: deliberately we do not include 'Makefile'
++EXTRA_DIST += BCC_MAKEFILE NT_MAKEFILE NT_THREADS_MAKEFILE \
++    OS2_MAKEFILE PCR-Makefile digimars.mak EMX_MAKEFILE \
++    Makefile.direct Makefile.dj Makefile.DLLs SMakefile.amiga \
++    WCC_MAKEFILE configure_atomic_ops.sh \
++    NT_STATIC_THREADS_MAKEFILE NT_X64_STATIC_THREADS_MAKEFILE \
++    NT_X64_THREADS_MAKEFILE
++
++# files used by makefiles other than Makefile.am
++#
++EXTRA_DIST += add_gc_prefix.c gcname.c if_mach.c if_not_there.c \
++    hpux_test_and_clear.s gc.mak MacOS.c \
++    MacProjects.sit.hqx mach_dep.c setjmp_t.c \
++    threadlibs.c AmigaOS.c \
++    Mac_files/datastart.c Mac_files/dataend.c \
++    Mac_files/MacOS_config.h Mac_files/MacOS_Test_config.h \
++    include/private/msvc_dbg.h msvc_dbg.c
++
++# The libatomic_ops library.  This is not ideal, since we pick up junk from
++# there.  The hard-coded version number should also go.
++EXTRA_DIST += libatomic_ops-1.2
++
++# this is an auxiliary shell file used by Makefile and Makefile.direct
++#
++CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
++
++# :FIXME: why do we distribute this one???
++#
++EXTRA_DIST += libtool.m4
++
++#
++# :GOTCHA: GNU make rule for making .s out of .S is flawed,
++# it will not remove dest if building fails
++.S.s:
++ if $(CPP) $< >$@ ; then :; else rm -f $@; fi
++
++include include/include.am
++include cord/cord.am
++include tests/tests.am
++include doc/doc.am
++# Putting these at the top causes cord to be built first, and not find libgc.a
++# on HP/UX.  There may be a better fix.
++
++
diff -Naur boehm-gc-rpmbuild-orig/SPECS/gc.spec boehm-gc-rpmbuild-new/SPECS/gc.spec
--- boehm-gc-rpmbuild-orig/SPECS/gc.spec 2009-07-16 12:12:56.000000000 +0300
+++ boehm-gc-rpmbuild-new/SPECS/gc.spec 2009-07-16 12:12:34.000000000 +0300
@@ -13,6 +13,7 @@
 Source0: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/%{name}-%{version}.tar.gz
 BuildRequires: libatomic_ops-devel
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+Patch001: avoid_install_same_headers_twice.patch
 
 %description
 Boehm's GC is a garbage collecting storage allocator that is intended to be
@@ -52,6 +53,7 @@
 
 %prep
 %setup -q
+%patch001 -p1
 
 %build
 # refresh auto*/libtool to purge rpaths

Re: [Cooker] libobjc_gc.so missing from the gcc srpm build

by Anssi Hannula-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Mika Laitio wrote:
> So attached is the patch against the gcc.spec in gcc-4.4.0-3mnb2.src.rpm
> that enables the libobjc_gc.so build and packages it (and .a file) to rpm.
> Would it be possible that somebody commits that change to gcc?

Applied with modifications:
http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gcc/current/SPECS/gcc.spec?r1=382395&r2=396976

Static libraries and development .so symlinks belong to a devel package;
with gcc that means the compiler-specific directory in the compiler package.

gcc-4.4.0-4mnb2 submitted with the change.

> In addition the gc-7.1.3mdv2009.1.src.rpm that has been maintained by
> the Adam Williamson and provides the libgc.so from the boehm-gc requires
> also a patch that is also attached, otherwise the src rpm build will
> fail on the cooked machine on the rpm package phase because new version
> of /usr/bin/install does not accept same files specified more than once
> as a parameters... So could somebody commit that patch also to Mandriva
> repo and regenerate srpm and rpm?

Patch added. Note that your diff contained Makefile.am~ completely. Use
e.g. -x*~ in the diff command to disable including *~ backup files.

gc-7.1-4mdv2010.0 submitted with the change.

Thank you for the patches.

--
Anssi Hannula