Opened 11 years ago

Closed 11 years ago

#40284 closed defect (fixed)

libgcc-devel @4.9-20130825 does not build: uses too much memory

Reported by: feliks.kluzniak@… Owned by: mww@…
Priority: Normal Milestone:
Component: ports Version: 2.2.0
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia), ryandesign (Ryan Carsten Schmidt), skymoo (Adam Mercer)
Port: libgcc-devel

Description

While updating libgcc-devel I see a cc1plus process whose memory requirements exceed 3GB. On a machine with 4GB memory this causes heavy thrashing. When left to run overnight, the build process stops for lack of disk space: when it started, the free space was around 72GB.

My wholly uninformed guess is that this might be infinite recursion in template instantiation.

This is on a 2010 MacBook Pro, OS X 10.8.4. I attach a file that shows my path and the installed ports.

Attachments (2)

installed (8.5 KB) - added by feliks.kluzniak@… 11 years ago.
path + list of installed ports
cc1_13948.spindump.txt (860.9 KB) - added by cartasegna.luca@… 11 years ago.
Result of spin dump

Download all attachments as: .zip

Change History (14)

Changed 11 years ago by feliks.kluzniak@…

Attachment: installed added

path + list of installed ports

comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jeremyhu@… ryandesign@… added
Keywords: build memory removed
Owner: changed from macports-tickets@… to mww@…
Summary: libgcc-devel @4.9-20130825 does not buildlibgcc-devel @4.9-20130825 does not build: uses too much memory

Yes, I have not yet been able to upgrade the port either, because the process used up 8GB and filled up all my disk space with swap space. My machine has 16GB RAM.

comment:2 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Probably best to report this to GCC's bugzilla...

comment:3 Changed 11 years ago by cartasegna.luca@…

Happened to me too: started the upgrade with 35 GB of free space and decided to stop it with only about 5 GB of free space after 2 hours of building. If it is of any help I can attach the main log of the build(although it is approximately 21 MB)...

comment:4 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)

A spindump would be useful:

$ sudo spindump <pid of runaway process>

comment:5 Changed 11 years ago by cartasegna.luca@…

I restarted the build where I stopped it before(maybe I should do it in a clean build?) and I' m attaching the result of the spindump comand(I did at the cc1 process as it seemed to keep growing steadily in RAM usage)

Changed 11 years ago by cartasegna.luca@…

Attachment: cc1_13948.spindump.txt added

Result of spin dump

comment:6 Changed 11 years ago by feliks.kluzniak@…

Unfortunately, the new release (@4.9-20130901) seems to have the same problem. I killed the build when the cc1 process had clocked 23 minutes of CPU time, and its virtual memory size had grown to 17GB.

This is a pity, because I don't know of any other ports that support C++11. Clang seems to implement the language, but not the library. The last release of gcc49/libgcc-devel that worked for me was MacPorts gcc49 4.9-20130818_0.

comment:7 in reply to:  6 ; Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)

This is a pity, because I don't know of any other ports that support C++11. Clang seems to implement the language, but not the library.

As has been discussed extensively on macports-dev this past month:

clang -stdlib=libc++ -lang=c++11
Last edited 11 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:8 in reply to:  7 Changed 11 years ago by larryv (Lawrence Velázquez)

More specifically: http://libcxx.llvm.org/

comment:9 Changed 11 years ago by skymoo (Adam Mercer)

Cc: ram@… added

Cc Me!

comment:10 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Please test again with 4.9-20130915 which builds fine for me.

comment:11 Changed 11 years ago by feliks.kluzniak@…

I confirm that the latest version installs from binaries (!) without problems.

comment:12 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.