LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Slackware glibc-2.17 (https://www.linuxquestions.org/questions/slackware-14/slackware-glibc-2-17-a-4175449291/)

tuxbg 02-09-2013 08:39 AM

Slackware glibc-2.17
 
Hello Slackware friends.
If someone of you try to compile new glibc-2.17,this is what you gotta do
put this in diffutils and tar,because they will fail to compile without that line in SlackBuild script.I will test other packages to view if they fail to compile with new glibc

Code:

sed -i -e '/gets is a/d' gnu/stdio.in.h
p.s
Sorry for my english :)
This is the packages that i tested and they compile perfect with new glibc

This is the build order that i compile my packages after bild toolchain from my next post

Code:

aaa_base
aaa_elflibs
aalib
alsa-lib
alsa-oss
alsa-utils
atk
attr
audiofile
bin
cairo
cdparanoia
cdrtools
cxxlibs
cyrus-sasl
dbus
dbus-glib
dhcpcd
dialog
e2fsprogs
eject
esound
etc
exiv2
flac
fribidi
gdk-pixbuf2
geeqie
giflib
glib2
gnupg
gtk+2
gvfs
htop
infozip
iputils
kernel-firmware
kmod
lcms
lcms2
libatasmart
libcaca
libcdio
libcroco
libffi
libgcrypt
libgnome-keyring
libmad
libmcs
libmng
libmowgli
libmpc
libnotify
libogg
libpng
libtheora
libvorbis
libwnck
libxklavier
libxml2
lilo
links
lzo
mpg123
nano
network-scripts
pango
phonon
polkit
poppler
procps
sdl
shadow
shared-mime-info
slocate
startup-notification
sysklogd
sysvinit
sysvinit-scripts
udev
udisks2
unrar
util-linux
vte
wget
which
zlib

ALL XFCE-4.10 packages Thunar-1.6.2,exo-0.10.2
ALL packages from X directory

I compile only them because i heve a minimal installation of Slackware64
To build freeglud with MESA-9.0.2 you need this stuff in freeglut.SlackBuild

Code:

sed -i '/PFNGLSHADERSOURCEPROC/s/ \*\*string/\* const \*string/' \
    progs/demos/smooth_opengl3/smooth_opengl3.c

Also if you whant opengl 3.0 with r600,r600g driver for ati you need this to configure option for Mesa

Code:

  --enable-texture-float \

ponce 02-10-2013 04:42 AM

just FYI, on Dec 21 2012
Quote:

Originally Posted by -current's ChangeLog
Still testing the new glibc, which removes the gets() function and may or may
not be a safe upgrade yet. It might be safer after the next gcc comes out.

consider that the first release candidate (not the final one) of gcc-4.8.0 is, at least (being optimistic), one month away...

As you are basically rebuilding a slackware system from scratch, (if you feel like) could be useful also for others to update the first post with the exact order you follow in building the various packages ;)

tuxbg 02-10-2013 06:27 AM

Yes basically i rebuild all my packages with new glibc.First i rebuild my toolchain gcc-4.7.2 following this link http://www.linuxfromscratch.org/lfs/...technotes.html
I use original SlackBuilds
Toolchain build order is

Code:

binutils
mpfr
gmp
mpc
gcc
headers
glibc  #Here i add this line to SlackBuild sed -i -e 's/-lgcc_eh//g' Makeconfig
patches for glibc is glibc-2.17-sync-with-linux37.patch and glibc-2.17-no_timezones.patch
binutils
gcc
ncurses
bash
bzip
coreutils
difutils # sed -i -e '/gets is a/d' gnu/stdio.in.h This in SlackBuild
file
findutils
gawk
grep
gzip
make
patch
perl
sed
tar #This line iin SlackBuild sed -i -e '/gets is a/d' gnu/stdio.in.h
xz


tuxbg 02-10-2013 07:09 AM

Other packages successfully build is
This is the build order that i compile this packages

Code:

ConsoleKit
MPlayer
audacious
audacious-plugins
epdfview
flash-player
leafpad
libevent
libsoup
murrine
murrine-themes
p7zip
transmission
xarchiver
xfce4-screenshooter
ttf-bitsream-vera
dejavu
skype_static
openssl  #Todays upgrade
openssl-solibs
mozilla-firefox

And one last thing i build all my packages with that CFLAGS -O2 -fpic -pipe -march=native

tuxbg 02-11-2013 06:28 AM

New packages that's compile correctly is all KDE-4.10 deps and all KDE-4.10 with new glibc-2.17.
I will try gcc-4.8 snapshot
All packages are compiled with CFLAGS -O2 -fpic -pipe -march=native
Also i have a one question why Slackware packages are compiled with fPIC instead fpic ?

ponce 02-11-2013 09:07 AM

I guess because of this

http://tldp.org/HOWTO/Program-Librar...libraries.html

Quote:

create the object files that will go into the shared library using the gcc -fPIC or -fpic flag. The -fPIC and -fpic options enable ``position independent code'' generation, a requirement for shared libraries;
...
Use -fPIC or -fpic to generate code. Whether to use -fPIC or -fpic to generate code is target-dependent. The -fPIC choice always works, but may produce larger code than -fpic (mnenomic to remember this is that PIC is in a larger case, so it may produce larger amounts of code). Using -fpic option usually generates smaller and faster code, but will have platform-dependent limitations, such as the number of globally visible symbols or the size of the code. The linker will tell you whether it fits when you create the shared library. When in doubt, I choose -fPIC, because it always works.

tuxbg 02-11-2013 09:14 AM

Ok thanks,i found that Vector Linux use fpic instead fPIC but not on all packages :)

GazL 02-11-2013 10:53 AM

On x86 family processors I don't believe there is any difference between -fpic and -fPIC, at least that is what the gcc man-page seems to be saying.

tuxbg 02-11-2013 11:42 AM

Ok what about without fpic/fPIC option ?

I found this link http://www.gentoo.org/proj/en/harden...-internals.xml

ponce 02-11-2013 12:19 PM

Quote:

While the architectures supported by Gentoo are quite differently addressing memory, they all share the same characteristic: direct non-PIC-aware addressing is always cheaper (read: faster) than PIC addressing. For example the RISC (Reduced Instruction Set) architectures sparc, ppc and hppa sometimes use more than one assembler command issuing several more opcodes to do what x86 does with a single variable length assembler command, loading a full 32-Bit address for example. Only the AMD64 seems to support some kind of "emulation" mode where it does not seem to make a difference if PIC or normal addressing is used for referring code functions and data to access.
-fPIC is enabled in the *.SlackBuilds only for the x86_64 architecture.

hendrickxm 03-28-2014 05:50 PM

I decided to update my toolchain. Well actually only glibc and rebuilding the toolchain.

PART 1:
1) U glibc-2.19-1
I just needed to add/delete a patch to the slackbuild and all went well.
2) R zlib-1.2.8-2
Why not huh?
3) R binutils-2.23.52-3
4) R oprofile-0.9.7-5
5) U file-5.17-1
6) R gmp-3.1.2-2
7) R mpfr
9) U libmpc-1.0.2-3
Create symlink:
cd /usr/lib64
ln -s libmpc.so.3 libmpc.so.3
10) R gcc-4.8.2-2
First install gcc-gnat gcc-java and gcc-go and reinstall updated packages including gcc-g++
11) R libtool-2.4.2-3
12) R binutils-2.23.52-4
13) R popt
14) R oprofile
15) R glibc-2.19-2

DONE

PART 2: base rebuild according to LFS book and dependencies according to salix

R zlib, R file, R attr, R acl, R sed, R bzip2, U pkg-config-0.28-1, R shadow, R ncurses
R libtermcap, R procps and U psmisc-22.21
R libcap and U coreutils-8.22
R m4, R flex, U bison-3.0.2, R bash, R libtool, R gdbm, R net-tools

A few updates are available but gave me problems like gdbm and I decided to skip procps-ng.
Net-tools is unmaintained and the slackbuild needed a few extra patches.

R autoconf, U automake-1.14.1, R diffutils, R gawk, R findutils, U gettext-0.18.3.1, R xz
R less, R gzip, R kbd, U kmod-16, R make, R patch, R sysklogd, R sysvinit, U tar, R texinfo.

Again a few could need some updating like kbd but did not try, tar needed a few patches and texinfo is old.

R readline, R bc, R gawk, R man, U man-pages-3.61, R db48, R expat, R openssl and openssl-solibs.
U perl-5.18.2. I tried gdbm > 1.8.3 but somehow the usr/include/gdbm.h does not install.
I should try to upgrade to man-db as well. Readline is also quite old.

R libpng, U freetype-2.5.3, U fuse-2.9.3, R libelf, R libffi, R python, R gamin, U glib2-2.40.0 and R gamin again.
Python could get an update though. Almost there.

R udev, U util-linux-2.24, R udev, U e2fsprogs-1.42.9, U mdadm-3.3, R lvm2, R grub.
I spent a lot of time fixing grub with a few hard to find patches.

R libmnl, R libnfnetfilter_conntrack, R libnl3, U libusb-1.0.18, U libpcap-1.5.3, iptables and iproute2.
U iptables-1.4.21, U iproute2-3.12.0. Almost forgot R nano.
R sysvinit-functions and salix scripts. The scripts are built with SLKBUILD.
R mkinitrd and I rebooted!

If I made some foolish errors, so what, I can go again!

Is there a slackbuild available for the headers?

tuxbg 03-30-2014 11:10 AM

Quote:

Originally Posted by hendrickxm (Post 5143050)
I decided to update my toolchain. Well actually only glibc and rebuilding the toolchain.


Create symlink:
cd /usr/lib64
ln -s libmpc.so.3 libmpc.so.3


Is there a slackbuild available for the headers?

You need to create libmpc.so.2 symlink to libmcp.so.3,because your gcc search for libmpc-so.2 that is direct dependencies to gcc.

Code:

#!/bin/sh
set -e
CWD=`pwd`

VERSION=${VERSION:-3.10.30}
ARCH=${ARCH:-x86}
BUILD=${BUILD:-1}
TMP=${TMP:-/tmp}


PKG=$TMP/package-kernel-headers
rm -rf $PKG

cd /usr/src/linux-$VERSION

make headers_check || exit 1
make headers_install INSTALL_HDR_PATH=$PKG/usr


cd $PKG
mkdir install
cat $CWD/slack-desc > install/slack-desc
makepkg -l y -c n  $TMP/kernel-headers-$VERSION-${ARCH}-$BUILD.txz


hendrickxm 03-31-2014 10:16 AM

Thanks.
The libmpc.so.3 symlink was a typo.

I will update to 3.12 kernel headers since that release is the new LTS.
Next, am I going to think about what packages I can/will upgrade/rebuild and the order.
I used the LFS-book, the dependencies according to salix and toolchain notes in this write-up: http://eerielinux.wordpress.com/2013...x-system-pt-3/ as a lead.

I tried to create packages for an updated kernel but I have not figured out yet how I can rebuild a "huge" kernel package. I tried to change the direcotries in the slackbuild but the buildscript finishes almost instantly without actually building a package.

tuxbg 03-31-2014 12:39 PM

You say that you use glibc.Slackbuild to build glibc-2.19.
But do you edit doinst.sh-glibc and doinst.sh-glibc-solibs ?
There is a simlinks to 2.17

hendrickxm 03-31-2014 01:41 PM

3 Attachment(s)
Quote:

Originally Posted by tuxbg (Post 5144182)
You say that you use glibc.Slackbuild to build glibc-2.19.
But do you edit doinst.sh-glibc and doinst.sh-glibc-solibs ?
There is a simlinks to 2.17

Yes, I have changed those scriptfiles.
Included are my edited files.

hendrickxm 04-01-2014 04:21 PM

Thanks for the kernel-headers buildscript.
I did change it a bit.

So now I restarted rebuilding the toolchain on my slackware install, on a different computer though.

So, how I am doing it:
Code:

U kernel-header 3.12.15
U glibc 2.19
R zlib 1.2.8
R binutils 2.23.52
R oprofile 0.9.7
U file 5.17
R gmp 5.1.3
R mpfr 3.1.2
U libmpc 1.0.2
cd /usr/lib64
ln -s libmpc.so.2 libmpc.so.3
R gcc 4.8.2
R kernel-headers 3.12.15
R glibc 2.19
R binutils 2.23.52
R oprofile 0.9.7
R gcc 4.8.2



All times are GMT -5. The time now is 07:12 AM.