View previous topic :: View next topic |
Author |
Message |
asturm Developer
Joined: 05 Apr 2007 Posts: 8935
|
Posted: Tue Dec 12, 2017 6:16 pm Post subject: |
|
|
Well, gcc-6.4.0 is already stable, and the good thing there is that you already save one time rebuilding (C++ ABI and 17.0 at the same time).
Otherwise you may soon run into trouble with ICU >=59 stabilisation taking place. It breaks most/all rdeps with <GCC-6. |
|
Back to top |
|
|
wrc1944 Advocate
Joined: 15 Aug 2002 Posts: 3435 Location: Gainesville, Florida
|
Posted: Tue Dec 12, 2017 6:30 pm Post subject: |
|
|
I was wondering what the profile 17.0 "all the other goodies" were, so I looked here https://www.gentoo.org/support/news-items/2017-11-30-new-17-profiles.html and while informative, only refers to gcc-6.4.
Anyway, from the last few posts I'm concluding that for those running ~amd64 gcc-7.2 profile 13.0 (global -pie), and happy the way things are could move to the 17.0 profile and simply set a -pie USE flag for gcc in /etc/portage/package.use, and perhaps globally in make.conf CFLAGS & USE=-pie, and then if need be optionally set +PIE for openssh and pam and perhaps other network items in package.use?
Two other points I'm still not clear on: Why do we need to "unmask" pie ( a USE flag), and specifically what exactly are "all the other goodies" of profile 17.0 relevant to >=gcc-7.2?
Is the syntax for CFLAGS="-fno-pie or -mno-pie", and do we also need a package.use line >=sys-devel/gcc-7.2.0 -pie?
Maybe because I'm an old man, but I'm still having trouble with understanding why after 15 years of happily running multiple ~and64 Gentoo home desktop systems compiled with with -pie and absolutely no security issues whatsoever, suddenly the gcc default must enable PIE to protect me from potential security issues. On home desktops (including many distros and windows versions) the only security problem I've ever had was when i did a fresh windows-xp install many years ago and forgot to enable antivirus protection before going online. _________________ Main box- AsRock x370 Gaming K4
Ryzen 7 3700x, 3.6GHz, 16GB GSkill Flare DDR4 3200mhz
Samsung SATA 1000GB, Radeon HD R7 350 2GB DDR5
OpenRC Gentoo ~amd64 plasma, glibc-2.36-r7, gcc-13.2.1_p20230304
kernel-6.8.4 USE=experimental python3_11 |
|
Back to top |
|
|
tomtom69 Apprentice
Joined: 09 Nov 2010 Posts: 245 Location: Bavaria
|
Posted: Tue Dec 12, 2017 6:33 pm Post subject: |
|
|
Most of the build time for a complete @world rebuild on my non-performant systems is spent on only some packages which are namely:
- chromium (~9h)
- firefox (~3h)
- libreoffice (~4h)
- wine (~2h)
- qt-webengine (~3h)
- wireshark (~3h)
As far as I understood, only packages that are dependencies of other packages due to specific .a or .so files need to be rebuilt in order not to break linkage/compilation.
So is it safe to exclude at least all of those mentioned (maybe except qt-webengine) from being rebuilt? |
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9679 Location: almost Mile High in the USA
|
Posted: Tue Dec 12, 2017 6:42 pm Post subject: |
|
|
Somehow my cross-compiler (x86, gcc-5.4.0-r3 that I did NOT upgrade yet) got unset while setting to profile 17, and it killed the emerge -e @world ... I reset it (gcc-config) and emerge --resume ... I'm not sure why it should have been a hard fail except for rebuilding cross- libraries.
So far so good... 1065 packages need to be rebuilt, about 310 done as of now. _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
Whoo n00b
Joined: 25 May 2003 Posts: 27 Location: Quebec ;)
|
Posted: Wed Dec 13, 2017 2:33 am Post subject: |
|
|
Wallsandfences wrote: | for me it's mono that doesn't build... |
For me too
Code: | ld: /var/tmp/portage/tmpfs/portage/dev-lang/mono-4.4.1.0/temp/mono_aot_lBUxba.o: relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
ld: final link failed: Nonrepresentable section on output
AOT of image ./../../class/lib/build/mcs.exe failed.
|
Code: |
Portage 2.3.13 (python 3.5.4-final-0, default/linux/amd64/17.0/desktop/plasma/systemd, gcc-6.4.0, glibc-2.25-r9, 4.9.60-aufs x86_64)
=================================================================
System Settings
=================================================================
System uname: Linux-4.9.60-aufs-x86_64-Intel-R-_Core-TM-_i3-3220_CPU_@_3.30GHz-with-gentoo-2.4.1
KiB Mem: 8144764 total, 648808 free
KiB Swap: 1048572 total, 775968 free
Timestamp of repository gentoo: Sun, 10 Dec 2017 22:30:01 +0000
Head commit of repository gentoo: bbd39788128eeb5fe16a41f55c7da8ce5c0808e2
sh bash 4.3_p48-r1
ld GNU ld (Gentoo 2.28.1 p1.0) 2.28.1
distcc 3.2rc1 x86_64-pc-linux-gnu [disabled]
app-shells/bash: 4.3_p48-r1::gentoo
dev-java/java-config: 2.2.0-r3::gentoo
dev-lang/perl: 5.24.3::gentoo
dev-lang/python: 2.7.14-r1::gentoo, 3.4.5-r1::gentoo, 3.5.4-r1::gentoo, 3.6.3-r1::gentoo
dev-util/cmake: 3.8.2::gentoo
dev-util/pkgconfig: 0.29.2::gentoo
sys-apps/baselayout: 2.4.1-r2::gentoo
sys-apps/openrc: 0.34.11::gentoo
sys-apps/sandbox: 2.10-r4::gentoo
sys-devel/autoconf: 2.13::gentoo, 2.69::gentoo
sys-devel/automake: 1.11.6-r2::gentoo, 1.15.1-r1::gentoo
sys-devel/binutils: 2.28.1::gentoo, 2.29.1-r1::gentoo
sys-devel/gcc: 5.4.0-r3::gentoo, 6.4.0::gentoo
sys-devel/gcc-config: 1.8-r1::gentoo
sys-devel/libtool: 2.4.6-r3::gentoo
sys-devel/make: 4.2.1::gentoo
sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers)
sys-libs/glibc: 2.25-r9::gentoo
gentoo
location: /usr/portage
sync-type: rsync
sync-uri: rsync://rsync.gentoo.org/gentoo-portage
priority: -1000
sync-rsync-extra-opts:
docker
location: /var/lib/layman/docker
masters: gentoo
priority: 0
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-fpie -fPIC"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.3/conf"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y --backtrack 30"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="fr_FR.UTF-8@euro"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp/portage/tmpfs"
USE="X a52 aac acl acpi activities alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli cracklib crypt cryptsetup cups cxx dbus declarative dri dts dvd dvdr emboss encode exif extraengine fam fdk firefox flac fortran gcj gdbm gif git glamor gpm gtk iconv icu ipv6 jpeg kde kipi kwallet lcms ldap libkms libnotify libv4l mad mng modules mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp overlay pam pango pcre pdf phonon plasma png policykit ppds pulseaudio python qml qt3support qt5 readline samba sdl seccomp semantic-desktop session spell sqlite ssl startup-notification svg systemd tcpd threads tiff tinfo truetype udev udisks unicode upower usb v4l vorbis widgets wxwidgets x264 x265 xattr xcb xcomposite xinerama xml xv xvid zlib" ABI_X86="64 32" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status
unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"
CPU_FLAGS_X86="avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64 pc emu" INPUT_DEVICES="evdev" KERNEL="linux" L10N="fr" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="fr" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-0" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python2_7 python3_5" QEMU_SOFTMMU_TARGETS="x86_64 arm" QEMU_USER_TARGETS="x86_64 arm" RUBY_TARGETS="ruby19 ruby20 ruby21 ruby22" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
=================================================================
Package Settings
=================================================================
dev-lang/mono-4.4.1.0::gentoo was built with the following:
USE="nls (-doc) -minimal -pax_kernel -xen" ABI_X86="32 (64) (-x32)"
CFLAGS="-O2 -pipe"
|
|
|
Back to top |
|
|
Hu Moderator
Joined: 06 Mar 2007 Posts: 21624
|
Posted: Wed Dec 13, 2017 3:29 am Post subject: |
|
|
Anon-E-moose wrote: | What's the downside of sticking with profile 13 other than "it will be depreciated"? | Its value will fall to zero very quickly. After the deprecation period ends and it is removed, no Gentoo maintainers will be testing on it and any bug reports from users still on 13.0 will likely be met with a request to upgrade unless the bug is very clearly not profile related.
asturm wrote: | Anon-E-moose wrote: | Didn't really answer my question. But I made an assumption that someone would grasp that I would have a local copy. |
But why would you do that, rather than switch to 17.0 and simply disabling pie in CFLAGS... | Which CFLAGS did you have in mind? The one user who tried this and reported back added -no-pie to his CFLAGS, which promptly broke building shared libraries because it confused gcc into linking in crt1.o (meant for main programs, not shared objects). Some packages might try to build both executables and shared objects, and might pass CFLAGS to both. If so, putting -no-pie in CFLAGS will break the shared objects and not putting it in CFLAGS will produce a PIE main program.
In my opinion, it is more reliable to disable PIE by specifically reverting the change(s) that caused it to default to enabled in 17.0, rather than adding more options to try to counter the default. |
|
Back to top |
|
|
wrc1944 Advocate
Joined: 15 Aug 2002 Posts: 3435 Location: Gainesville, Florida
|
Posted: Wed Dec 13, 2017 4:13 pm Post subject: |
|
|
Hu wrote: Quote: | In my opinion, it is more reliable to disable PIE by specifically reverting the change(s) that caused it to default to enabled in 17.0, rather than adding more options to try to counter the default. |
This sounds like a good solution, but what specifically is the correct procedure for doing so, and what, if any, are the negative consequences? If simply disabling pie in CFLAGS breaks building shared libraries, then what is the answer?
Simply using >=sys-devel/gcc-7.2.0 -pie? in /etc/portage/package.use, or setting -pie globally in make.conf?
I find it very perplexing and a little disturbing that it's sounding more and more like that after profile 13 is removed it might eventually become impossible to run a no-pie compiled Gentoo system. Is this where it's really headed?
I was looking at the gcc docs for more info at https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Code-Gen-Options.html#Code-Gen-Options and found this:
Quote: | 3.16 Options for Code Generation Conventions
These machine-independent options control the interface conventions used in code generation. Most of them have both positive and negative forms; the negative form of -ffoo is -fno-foo. In the table below, only one of the forms is listed—the one that is not the default. You can figure out the other form by either removing ‘no-’ or adding it. | Scrolling down in the page, there is:
Quote: | -fpic
Generate position-independent code (PIC) suitable for use in a shared library, if supported for the target machine. Such code accesses all constant addresses through a global offset table (GOT). The dynamic loader resolves the GOT entries when the program starts (the dynamic loader is not part of GCC; it is part of the operating system). If the GOT size for the linked executable exceeds a machine-specific maximum size, you get an error message from the linker indicating that -fpic does not work; in that case, recompile with -fPIC instead. (These maximums are 8k on the SPARC, 28k on AArch64 and 32k on the m68k and RS/6000. The x86 has no such limit.)
Position-independent code requires special support, and therefore works only on certain machines. For the x86, GCC supports PIC for System V but not for the Sun 386i. Code generated for the IBM RS/6000 is always position-independent.
When this flag is set, the macros __pic__ and __PIC__ are defined to 1.
-fPIC
If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding any limit on the size of the global offset table. This option makes a difference on AArch64, m68k, PowerPC and SPARC.
Position-independent code requires special support, and therefore works only on certain machines.
When this flag is set, the macros __pic__ and __PIC__ are defined to 2.
-fpie
-fPIE
These options are similar to -fpic and -fPIC, but generated position independent code can be only linked into executables. Usually these options are used when -pie GCC option is used during linking.
-fpie and -fPIE both define the macros __pie__ and __PIE__. The macros have the value 1 for -fpie and 2 for -fPIE. |
There are some of the possible "-fno-foo" options listed with more explanations, but none for "-fno-pie" which I assume would be a CFLAG. _________________ Main box- AsRock x370 Gaming K4
Ryzen 7 3700x, 3.6GHz, 16GB GSkill Flare DDR4 3200mhz
Samsung SATA 1000GB, Radeon HD R7 350 2GB DDR5
OpenRC Gentoo ~amd64 plasma, glibc-2.36-r7, gcc-13.2.1_p20230304
kernel-6.8.4 USE=experimental python3_11 |
|
Back to top |
|
|
tld Veteran
Joined: 09 Dec 2003 Posts: 1816
|
Posted: Wed Dec 13, 2017 5:20 pm Post subject: |
|
|
So here's basically what I've done to go to profile 17.0 with -pie:
As mentioned before, after checking "equery hasuse pie" I found that a a few packages where already using pie, so I decided to make sure to add them to /etc/portage/package.use: Code: | # To maintain existing pie after forcing -pie
net-misc/openssh pie
sys-libs/pam pie | Then to reverse the forced pie in 17.0: Code: | mkdir /etc/portage/profile
echo "sys-devel/gcc -pie" > /etc/portage/profile/package.use.force | ...after which I added -pie to my USE in make.conf.
Then I did the following...note that the profile 12 in my case was default/linux/x86/17.0/desktop, which was the 17.0 version of what I was using: Code: | gcc-config i686-pc-linux-gnu-6.4.0
. /etc/profile
eselect profile set 12
emerge -auDvU system world
These are the packages that would be merged, in order:
Calculating dependencies... done!
Total: 0 packages, Size of downloads: 0 KiB
Nothing to merge; quitting. |
That's it...all set and nothing to recompile. I was actually surprised that the 13.0 to 17.0 didn't affect any other USE flags. I didn't even have to tweak my make.conf USE other than adding -pie.
Tom |
|
Back to top |
|
|
dufeu l33t
Joined: 30 Aug 2002 Posts: 924 Location: US-FL-EST
|
Posted: Wed Dec 13, 2017 8:51 pm Post subject: Circular dependencies? |
|
|
I'm moving my first x86_64 PC from the desktop/plasma/13.0 profile to the corresponding desktop/plasma/17.0 profile.
I've done the gcc upgrade to 7.2, set gcc-config, re-source /etc/profile, and emerge -1 sys-devel/libtool.
I've also done:
* Re-emerge, in this sequence, gcc, binutils, and glibc
emerge -1 sys-devel/gcc:6.4.0
emerge -1 sys-devel/binutils
emerge -1 sys-libs/glibc
I'm trying to do the "emerge -e @world" and I'm having a great deal of difficulty with cascading circular dependencies. From "emerge --info": Code: | blaze ~ # emerge --info
Portage 2.3.16 (python 3.4.6-final-0, default/linux/amd64/17.0/desktop/plasma, gcc-7.2.0, glibc-2.25-r9, 4.13.8-gentoo x86_64)
=================================================================
System uname: Linux-4.13.8-gentoo-x86_64-Intel-R-_Xeon-R-_CPU_E5-2603_0_@_1.80GHz-with-gentoo-2.4.1
KiB Mem: 32916616 total, 398856 free
KiB Swap: 81919996 total, 81919996 free
Timestamp of repository gentoo: Mon, 11 Dec 2017 22:00:01 +0000
Head commit of repository gentoo: 07d48d993a40f8b511b80e734560e8556701ee0d
sh bash 4.3_p48-r1
ld GNU ld (Gentoo 2.29.1 p3) 2.29.1
app-shells/bash: 4.3_p48-r1::gentoo
dev-lang/perl: 5.26.1-r1::gentoo
dev-lang/python: 2.7.14::gentoo, 3.4.5::gentoo
dev-util/pkgconfig: 0.29.2::gentoo
sys-apps/baselayout: 2.4.1-r2::gentoo
sys-apps/openrc: 0.34.7::gentoo
sys-apps/sandbox: 2.10-r4::gentoo
sys-devel/autoconf: 2.69::gentoo
sys-devel/automake: 1.15-r2::gentoo
sys-devel/binutils: 2.28.1::gentoo, 2.29.1-r1::gentoo
sys-devel/gcc: 5.4.0-r3::gentoo, 7.2.0::gentoo
sys-devel/gcc-config: 1.8-r1::gentoo
sys-devel/libtool: 2.4.6-r4::gentoo
sys-devel/make: 4.2.1::gentoo
sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers)
sys-libs/glibc: 2.25-r9::gentoo
Repositories:
gentoo
location: /usr/portage
sync-type: rsync
sync-uri: rsync://rsync.gentoo.org/gentoo-portage
priority: -1000
sync-rsync-extra-opts: --timeout=15
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA dlj-1.1 PUEL AdobeFlash-10.3 AdobeFlash-11.x Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build --with-bdeps=y --keep-going"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--timeout=15"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="10bit 3dnow 3dnowext X a52 aac aalib accessibility acl acpi activities aio alsa amd64 amr anthy ao apache2 audiofile automount avahi berkdb bluray bonjour boost branding bzip2 cairo cdda cdio cdr chm cjk cli consolekit cracklib crypt css cups curl curlwrappers cxx dbus declarative dga dia directfb dri dts dv dvd dvdr dynamic emboss encode exif expat fam fat fbcon ffmpeg fftw firefox flac flash fontconfig foomaticdb fortran ftp gcj gd gdbm gif gimp glamor glib gmp gnutls gpac gphoto2 gpm graphviz gs gstreamer gtk hddtemp hdri ibus iconv icu id3tag imagemagick imlib immqt-bc inotify ipfilter ipv6 irc java javascript jbig jpeg jpeg2k kde kerberos kipi kwallet lame lcms libnotify libvisual lm_sensors lzo m17n-lib mad midi mikmod mjpeg mmap mmx mmxext mng modules mono mp3 mp4 mpeg mpi multilib multiuser musepack mysql nas ncurses network nls nptl nsplugin ntfs odbc offensive ogg openexr opengl openmp oscar pam pango pcre pdf perl phonon plasma plugins png policykit postscript ppds pulseaudio python q32 qml qt3support qt5 quicktime rar raw rdesktop readline recode regex reiser4 reiserfs rle rss ruby samba sasl scanner schroedinger scim sdk sdl seccomp sensord session sftp sndfile snmp sox speex spell sqlite sse sse2 ssl startup-notification subversion svg syslog taglib tcl tcpd theora threads tidy tiff timidity tk toolbar tools transcode truetype udev udisks unicode upower usb utils vaapi vala vcd vdpau vdr vorbis wavpack webkit widgets winbind wmf wxwidgets x264 xattr xcb xcomposite xft xine xinerama xml xorg xosd xpm xscreensaver xv xvid xvmc yahoo zeroconf zip zlib" ABI_X86="32 64" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif slotmem_shm so speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en en-US" LINGUAS="en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-0" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python2_7 python3_4 python3_5 python3_6" RUBY_TARGETS="ruby22" USERLAND="GNU" VIDEO_CARDS="mga"
Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS |
BTW, for nitpickers: - where you see: ACCEPT_KEYWORDS="amd64 ~amd64", this is what I have in /etc/portage/make.conf: Code: | #
# KEYWORD options
ACCEPT_KEYWORDS="~amd64" |
The spurious "amd64" appears to come from profile 17.0. I only mention it here because someone else noted the same thing I think on page 2 of the thread. As I understand how ACCEPT_KEYORDS works, the spurious "amd64" is meaningless as "~amd64" is effectively what's used. Please correct me if my understanding is wrong.
Naturally, I also have a set of package specific use flags. Code: | blaze /etc/portage # sort package.use/*
>=app-crypt/mit-krb5-1.15.2 libressl
>=app-text/xmlto-0.0.28-r1 text
>=dev-lang/python-2.7.13:2.7 sqlite
>=dev-lang/python-3.4.6:3.4 sqlite
>=dev-lang/python-3.5.3:3.5 sqlite
>=dev-qt/qtwebkit-5.7.1 printsupport
>=dev-ruby/did_you_mean-1.1.2 ruby_targets_ruby24
>=dev-ruby/json-2.1.0 ruby_targets_ruby24
>=dev-ruby/kpeg-1.1.0 ruby_targets_ruby24
>=dev-ruby/minitest-5.10.3 ruby_targets_ruby24
>=dev-ruby/net-telnet-0.1.1-r1 ruby_targets_ruby24
>=dev-ruby/power_assert-1.0.2 ruby_targets_ruby24
>=dev-ruby/racc-1.4.14 ruby_targets_ruby24
>=dev-ruby/rake-12.0.0 ruby_targets_ruby24
>=dev-ruby/rdoc-5.1.0 ruby_targets_ruby24
>=dev-ruby/rubygems-2.6.12 ruby_targets_ruby24
>=dev-ruby/test-unit-3.2.5 ruby_targets_ruby24
>=dev-ruby/xmlrpc-0.3.0 ruby_targets_ruby24
>=media-libs/gexiv2-0.10.6 introspection
>=media-libs/libmypaint-1.3.0 gegl
=media-libs/mesa-17.3.0 -vaapi
>=media-libs/phonon-4.9.0 -vlc
>=media-libs/xine-lib-1.2.8 -directfb
>=net-dns/avahi-0.7 mdnsresponder-compat
>=net-fs/samba-4.5.12 client
net-misc/iputils -caps -filecaps
sys-apps/busybox -static
>=sys-apps/util-linux-2.30.1 static-libs
>=sys-libs/ncurses-6.0-r1 -gpm
>=virtual/rubygems-13 ruby_targets_ruby24
>=x11-libs/libxcb-1.12-r2 xkb |
I haven't reviewed them since around Jan this year, so if anyone sees anything of note or questionable, please speak up.
When building a new system I often have to play games with disabling individual package USE flags especially involvins "cups", "java" and "avahi".
A lot of my current circular dependency issues seem to revolve around these as well (to be expected actually).
Currently, if I make a naive attempt to emerge --pretend --oneshot --verbose portage: | ...
[ebuild N ] dev-libs/nss-3.34.1::gentoo USE="nss-pem utils -cacert" ABI_X86="32 (64) (-x32)" 9,366 KiB
[ebuild R ] virtual/pkgconfig-0-r1::gentoo ABI_X86="32* (64) (-x32)" 0 KiB
Total: 357 packages (9 upgrades, 343 new, 2 in new slots, 3 reinstalls), Size of downloads: 1,506,264 KiB
Fetch Restriction: 1 package
* Error: circular dependencies:
(dev-java/oracle-jre-bin-1.8.0.152-r1:1.8/1.8::gentoo, ebuild scheduled for merge) depends on
(net-print/cups-2.2.6:0/0::gentoo, ebuild scheduled for merge) (runtime)
(virtual/jre-1.8.0-r1:1.8/1.8::gentoo, ebuild scheduled for merge) (buildtime)
(dev-java/oracle-jre-bin-1.8.0.152-r1:1.8/1.8::gentoo, ebuild scheduled for merge) (runtime)
It might be possible to break this cycle
by applying the following change:
- dev-java/oracle-jre-bin-1.8.0.152-r1 (Change USE: -cups)
Note that this change can be reverted, once the package has been installed.
Note that the dependency graph contains a lot of cycles.
Several changes might be required to resolve all cycles.
Temporarily changing some use flag for all packages might be the better option.
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
sys-libs/readline:0
(sys-libs/readline-6.3_p8-r3:0/0::gentoo, installed) pulled in by
>=sys-libs/readline-4.1:0/0= required by (dev-lang/python-2.7.14:2.7/2.7::gentoo, installed)
^^^^^
>=sys-libs/readline-4.1:0/0= required by (dev-lang/python-3.4.5:3.4/3.4m::gentoo, installed)
^^^^^
(and 3 more with the same problems)
(sys-libs/readline-7.0_p3:0/7::gentoo, ebuild scheduled for merge) pulled in by
sys-libs/readline:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?, abi_s390_64(-)?] required by (dev-db/sqlite-3.21.0:3/3::gentoo, ebuild scheduled for merge)
>=sys-libs/readline-6.2_p5-r1:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?, abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-db/unixODBC-2.3.4-r1:0/0::gentoo, ebuild scheduled for merge)
sys-libs/readline:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?, abi_s390_64(-)?] required by (sys-libs/gdbm-1.13-r1:0/0::gentoo, ebuild scheduled for merge)
dev-libs/openssl:0
(dev-libs/openssl-1.0.2m:0/0::gentoo, installed) pulled in by
>=dev-libs/openssl-1.0.1:0/0=[bindist] required by (net-misc/openssh-7.5_p1-r3:0/0::gentoo, installed)
^^^^^^^
>=dev-libs/openssl-1.0.1:0=[bindist=] required by (net-misc/openssh-7.5_p1-r3:0/0::gentoo, installed)
^^^^^^^^
(dev-libs/openssl-1.0.2n:0/0::gentoo, ebuild scheduled for merge) pulled in by
>=dev-libs/openssl-1.0.1h-r2:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?, abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-libs/libevent-2.1.8:0/2.1-6::gentoo, ebuild scheduled for merge)
dev-libs/openssl:0=[static-libs?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?, abi_s390_32(-)?,abi_s390_64(-)?] required by (net-misc/curl-7.57.0:0/0::gentoo, ebuild scheduled for merge)
dev-libs/openssl:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?, abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-db/mysql-connector-c-6.1.11:0/18::gentoo, ebuild scheduled for merge)
>=dev-libs/openssl-1.0.1h-r2:0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?, abi_s390_32(-)?,abi_s390_64(-)?] required by (net-libs/libssh-0.7.5-r1:0/4::gentoo, ebuild scheduled for merge)
dev-libs/openssl:0=[bindist=] required by (dev-qt/qtnetwork-5.9.3:5/5.9::gentoo, ebuild scheduled for merge)
^^^^^^^^
dev-libs/openssl:0=[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?, abi_s390_32(-)?,abi_s390_64(-)?] required by (app-arch/libarchive-3.3.2:0/13::gentoo, ebuild scheduled for merge)
sys-libs/e2fsprogs-libs:0
(sys-libs/e2fsprogs-libs-1.43.7:0/0::gentoo, ebuild scheduled for merge) pulled in by
>=sys-libs/e2fsprogs-libs-1.42.9[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?, abi_s390_32(-)?,abi_s390_64(-)?] required by (app-crypt/mit-krb5-1.15.2-r1:0/0::gentoo, ebuild scheduled for merge)
(sys-libs/e2fsprogs-libs-1.43.6:0/0::gentoo, installed) pulled in by
~sys-libs/e2fsprogs-libs-1.43.6 required by (sys-fs/e2fsprogs-1.43.6:0/0::gentoo, installed)
^ ^^^^^^
NOTE: Use the '--verbose-conflicts' option to display parents omitted above
!!! The slot conflict(s) shown above involve package(s) which may need to
!!! be rebuilt in order to solve the conflict(s). However, the following
!!! package(s) cannot be rebuilt for the reason(s) shown:
(dev-lang/python-2.7.14:2.7/2.7::gentoo, installed): ebuild is masked or unavailable
(dev-lang/python-3.4.5:3.4/3.4m::gentoo, installed): ebuild is masked or unavailable |
If I set the above USE as suggested I get a different set of circular dependencies. I've gone down as far as 8 levels trying to get to a state where there are no more circular dependencies.
One of the things that makes this difficult is that almost every package I'd like to singly emerge results in portage wanting to emerge over 350 other packages. I believe this is due to the profile change. Earlier, I saw something to the effect during 'perl' cleaning that I could expect problems if I used --nodeps though my memory could certainly be faulty in this so I haven't tried yet with --nodeps.
Anyway, I'm looking for suggestions on how to proceed: i.e. I'd like to possibly set -cups, -java globally and perhaps some other USE flags and then emerge subsets of packages without pulling in other sets of packages. For example: do X without pulling in qt or KDE/plasma.
Tips and advice would be very much appreciated.
Mod edit: Split long unbroken lines to prevent fourm formatting from going crazy. — JRG _________________ People whom think M$ is mediocre, don't know the half of it. |
|
Back to top |
|
|
asturm Developer
Joined: 05 Apr 2007 Posts: 8935
|
Posted: Wed Dec 13, 2017 9:05 pm Post subject: |
|
|
You should rather open a new thread for this. But the first thing you need to fix is your bindist setting. Remove any setting (either positive or negative) from make.conf and package.use. |
|
Back to top |
|
|
proteusx Guru
Joined: 21 Jan 2008 Posts: 338
|
Posted: Wed Dec 13, 2017 9:16 pm Post subject: |
|
|
@dufeu
When I am faced with such conundrums I'd do this:
Code: | emerge -1vaDuN world --exclude "java-jre-bin openssl readline e2fsprogs-libs" |
|
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9679 Location: almost Mile High in the USA
|
Posted: Thu Dec 14, 2017 9:44 am Post subject: |
|
|
It failed on sys-libs/talloc (again and again...) Disabling distcc, even loopback distcc, allows it to pass. I really think talloc has a poorly written build script/makefile or something as I've had it fail many times before on several machines, not just this one.
Ohgawd it IS WAFfling around... *sigh* Die WAF DIE.
Anyway, my poor P4 is compiling dev-lang/rust right now...
302 packages to go. _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
Zucca Moderator
Joined: 14 Jun 2007 Posts: 3343 Location: Rasi, Finland
|
Posted: Thu Dec 14, 2017 10:17 am Post subject: |
|
|
eccerr0r wrote: | Ohgawd it IS WAFfling around... *sigh* Die WAF DIE. | I once stumbled into a package that wgetted waf from git (even if I had waf installed locally) to build the package. Not too long after the build started to fail.
I wonder what advantages this waf brings... _________________ ..: Zucca :..
Gentoo IRC channels reside on Libera.Chat.
--
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9679 Location: almost Mile High in the USA
|
Posted: Thu Dec 14, 2017 10:39 am Post subject: |
|
|
Oh, man, it actually downloaded while building? Or was it a pre-build requirement?
Ability to use distcc is definitely not an advantage to waf, apparently!
The only thing I can think of waf being "better" is that you can hack it, instead of using a cooked solution like make or ninja... _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
Zucca Moderator
Joined: 14 Jun 2007 Posts: 3343 Location: Rasi, Finland
|
Posted: Thu Dec 14, 2017 11:35 am Post subject: |
|
|
eccerr0r wrote: | Oh, man, it actually downloaded while building? | Actually right before. Downloaded to a temp directory.
Anyway, it was some git/live package that seemed to require the most recent version waf. _________________ ..: Zucca :..
Gentoo IRC channels reside on Libera.Chat.
--
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9679 Location: almost Mile High in the USA
|
Posted: Thu Dec 14, 2017 8:40 pm Post subject: |
|
|
Well, my P4 is once again building samba right now, and WAFfling now. Fortunately it's not nearly taking as much cpu time to waf and gcc is using more cpu cycles than python, so I guess that's better than that last time I caught waf using more cpu than gcc.
About 190 packages to go... and webkit-gtk is part of that 190 packages... :(
[edit] Another day passed, now down to 49 packages to go. Poor P4.
It got webkit-gtk and qtwebkit compiled recently... I don't know why qtwebkit is so much faster than webkit-gtk.
webkit-gtk: Thu Dec 14 20:51:14 2017: 45409 seconds
qtwebkit: Fri Dec 15 11:10:10 2017: 12495 seconds
[edit] First pass finally finished late at night. Two failed packages (gdm and syncevolution in local portage overlay). but gdm merged fine oneshot, second time around. The install somehow is using 2GB more disk space than before despite keeping /usr/portage/distfiles is on nfs... took about 40 hours to finish on this P4 (amd64) with no helpers. So far the machine looks like it's working fine after the emerge -e @world ... speed is about the same as before. I just need to figure out why it's using so much more disk space. _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
transpetaflops Apprentice
Joined: 16 May 2005 Posts: 159
|
Posted: Sun Dec 24, 2017 4:19 pm Post subject: |
|
|
Do I need to recompile my kernel again after switching to 17.0? I did recompile it after switching to GCC 6.4.0 while still on profile 13. |
|
Back to top |
|
|
asturm Developer
Joined: 05 Apr 2007 Posts: 8935
|
Posted: Sun Dec 24, 2017 4:23 pm Post subject: |
|
|
Not really. But usually there is a new kernel version around to make an upgrade, anyway. |
|
Back to top |
|
|
dmpogo Advocate
Joined: 02 Sep 2004 Posts: 3267 Location: Canada
|
Posted: Mon Dec 25, 2017 8:49 pm Post subject: |
|
|
transpetaflops wrote: | Do I need to recompile my kernel again after switching to 17.0? I did recompile it after switching to GCC 6.4.0 while still on profile 13. |
I had to to reinstall nvidia-drivers |
|
Back to top |
|
|
transpetaflops Apprentice
Joined: 16 May 2005 Posts: 159
|
Posted: Mon Dec 25, 2017 10:04 pm Post subject: |
|
|
Yes, that would be understandable. I was more curious whether the new profile enable pie for the kernel too (if that is possible) or if a recompile was necessary to enable functionality the pie enabled binaries need from the kernel. But I guess the answer to the latter is a no since shared libraries are already pie enabled and they work fine in profile 13. Just trying to learn stuff. |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54234 Location: 56N 3W
|
Posted: Mon Dec 25, 2017 10:37 pm Post subject: |
|
|
transpetaflops,
Building gcc with USE=pie sets its default behaviour when nothing is given in CFLAGS for pie.
USE=pie makes a gcc that emits pie code unless -fno-pie is in CFLAGS
USE=-pie makes a gcc that does not emit pie code unless -fpie is in CFLAGS
Its up to the kernel build system how it sets its CFLAGS.
The Gentoo profile and make.conf are not applied. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
transpetaflops Apprentice
Joined: 16 May 2005 Posts: 159
|
Posted: Mon Dec 25, 2017 10:58 pm Post subject: |
|
|
NeddySeagoon wrote: | Building gcc with USE=pie sets its default behaviour when nothing is given in CFLAGS for pie.
USE=pie makes a gcc that emits pie code unless -fno-pie is in CFLAGS
USE=-pie makes a gcc that does not emit pie code unless -fpie is in CFLAGS |
Crystal clear.
NeddySeagoon wrote: | Its up to the kernel build system how it sets its CFLAGS.
The Gentoo profile and make.conf are not applied. |
Good to know and understandable since the Linux kernel is developed independently from the GNU userland contrary to how BSD does it. I assume then there's nothing I specifically need to configure in my kernel to make it handle both pie enable binaries as well as non pie enabled binaries. It already has that functionality?
Another question has to do with glibc since everything links against it. When I have recompiled it according to the instructions, will all my old binaries still work with this new pie enabled version before I finish my emerge -e @world? Say if I got a power outage at this point, would I still be able to boot my system? |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6747
|
Posted: Mon Dec 25, 2017 11:35 pm Post subject: |
|
|
transpetaflops wrote: | Another question has to do with glibc since everything links against it. |
Runtime libraries are not affected by pie, because they are pic anyway. And statically linked programs are not affected either (because they are static ). The only thing you have to take care of is that in case you rebuild a static binary, you must rebuild the used static libs (like from glibc) in advance. |
|
Back to top |
|
|
virtguru Tux's lil' helper
Joined: 14 Aug 2010 Posts: 148 Location: The Greatest Country in the World
|
Posted: Thu Dec 28, 2017 12:51 pm Post subject: |
|
|
Ive got some new hardware and looking at a new install. How does the profile change affect that ? Just follow the action items in the news post upon profile select ?
I see the minimal is still dated 2017-09-07 , so not sure if its up to date or not ..
Thanks . |
|
Back to top |
|
|
charles17 Advocate
Joined: 02 Mar 2008 Posts: 3664
|
Posted: Thu Dec 28, 2017 1:13 pm Post subject: |
|
|
virtguru wrote: | I see the minimal is still dated 2017-09-07 , so not sure if its up to date or not .. |
That's only the medium. What you then install is a stage tarball.
For a fresh install, you might also want to have a look at profile 17.1. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|