List of ports that don't build perfectly (or at all) with gcc44

morbit said:
The problem was not with building png with stack-protector, but rebuilding it (and mksh as well) after all ports were compiled with stack-protector.
It doesn't make sense, all-depends-list is empty for graphics/png. And I have gcc/binutils built with -fstack-protector.

morbit said:
Cherry picking ports for stack-protection usually works, it was after full ports recompile I have been hit by corner cases stick I suppose, so I chose to stay with more tested configuration.
I can't reproduce it even after rebuilding all my ports and graphics/mupdf that I don't use. The only times I encountered hidden symbol errors were when I tried to enable LTO for them but that didn't involve SSP.
 
It doesn't make sense, all-depends-list is empty for graphics/png. And I have gcc/binutils built with -fstack-protector.

So it seems, If i reckon correctly one of the internal test of png have triggered "stack smashing detected" and build was automatically terminated. But maybe I'm talking gibberish, point is, there have been reports of ports (mis)compiling silently with stack-protection on FreeBSD list, so it's certainly not impossible, and I remember that I couldn't build mksh as well. The problem went away after I rebuild ports (gcc) with base compiler, and only then I could again build those ports with gcc44(5).

Sure, I didn't debug it fully, but this is how it was.
 
morbit said:
So it seems, If i reckon correctly one of the internal test of png have triggered "stack smashing detected" and build was automatically terminated.
Not in the thread I pointed to you earlier. In there dougb@ had __stack_chk_fail_local being hidden in his libc for some mysterious reason while it isn't hidden in snapshots. Since he didn't try use libc from snapshot I still believe that was the cause of the problem.
morbit said:
I remember that I couldn't build mksh as well.
I don't have problem compiling shells/mksh by gcc45 with -fstack-protector.
 
What is the strategy to update gcc once it's installed?
  • "make deinstall" followed by "make reinstall" won't work since gcc45 will disappear after the first step.
  • "make deinstall" followed by pkg_add gcc45 and "make reinstall" will leave 2 similar packages in the list of installed ports
 
interfasys said:
"make deinstall" followed by "make reinstall" won't work since gcc45 will disappear after the first step.
Just do a build (or all) target before issuing deinstall. When I'm lazy to run portmaster I usually run$ make {,{de,}inst}all cleanin zsh (works in tcsh, too). That magic expands to all deinstall install.

When gold starts to complain about missing symbol like GLIBCXX_3.4.10 during install then I just stuff libstdc++.so from zfs snapshot, e.g.
$ sudo LD_LIBRARY_PATH=/.zfs/snapshot/auto-<my_date>/$LOCALBASE/lib/gcc45 make installor save a copy of the lib beforehand where rtld can find it. BTW, if you don't have this problem then you're probably linking gold against old libstdc++.so from base. The issue is related to ports/148196, /etc/rc.d/ldconfig altering workaround there makes rtld(1) and ld(1) always use libstdc++.so from gcc45.
interfasys said:
"make deinstall" followed by pkg_add gcc45 and "make reinstall" will leave 2 similar packages in the list of installed ports
gcc45 package should conflict with the port since they have same origin, lang/gcc45.
 
camelia said:
Just do a build (or all) target before issuing deinstall. When I'm lazy to run portmaster I usually run$ make {,{de,}inst}all cleanin zsh (works in tcsh, too). That magic expands to all deinstall install.
I usually do a $ make to see if everything went fine and then issue the $ deinstallfollowed by$ reinstall
You're telling me to do a $ make all deinstall install
?
camelia said:
When gold starts to complain about missing symbol like GLIBCXX_3.4.10 during install then I just stuff libstdc++.so from zfs snapshot, e.g.
$ sudo LD_LIBRARY_PATH=/.zfs/snapshot/auto-<my_date>/$LOCALBASE/lib/gcc45 make installor save a copy of the lib beforehand where rtld can find it.
Interesting...

camelia said:
BTW, if you don't have this problem then you're probably linking gold against old libstdc++.so from base. The issue is related to ports/148196, /etc/rc.d/ldconfig altering workaround there makes rtld(1) and ld(1) always use libstdc++.so from gcc45.
That's what I've been using and it's worked quite well.

camelia said:
gcc45 package should conflict with the port since they have same origin, lang/gcc45.
Yeah, but that means two entries for the same files. I'm surprised that $ make install didn't get rid of the old entry.
 
lang/gcc45 shouldn't invoke compiler/linker during install step. If it is then it's a bug.

But I rarely test specifying CC/CXX myself since I use symlinks in PATH (just after ccache dir):
Code:
cc -> gcc45
gcc -> gcc45
c++ -> g++45
g++ -> g++45
cpp -> cpp45
gcov -> gcov45
basegcc -> /usr/bin/gcc
baseg++ -> /usr/bin/g++
It also reduces the number of symlinks I need for -m32 wrapper. And not having to worry about programs that may not respect CC/CXX is good, too.
 
I'm not sure what issue you have with php5.2. Runtime? Compiletime? I don't use php but lang/php52 compiles (gcc45+gold and default options) and php(1) runs "hello world" fine.

That ld script for arj port can be thrown away. However, the segfault is harder to fix. I think gold also mislinks at least
lang/ghc
www/w3m
x11-servers/xorg-server and friends, e.g. xephyr

Moreover, you can't build lang/sbcl using binutils from ports whether gold or ld. I suspect it's related to default ld script.
 
camelia said:
I'm not sure what issue you have with php5.2. Runtime? Compiletime? I don't use php but lang/php52 compiles (gcc45+gold and default options) and php(1) runs "hello world" fine.
I haven't tried from ports, but straight from source. It's a runtime problem and the executable only segfaults if I build php with --with-apxs2.
 
Back
Top