# FreeBSD / Gentoo be like? [Solved -> Linux in the furnace!]



## valsorym (Nov 3, 2011)

Hi all, sorry me for this theme.
Before I used Windows Xp OS, but recently I started using FreeBSD 8.2 (little experience - and because the questions may seem silly).

Introduction (you can skip).
----------------------------
One my friend convinced me install GNU/LInux Gentoo for comparison (arguing that it is better than FreeBSD).
I broke down. For the second week, I use GNU/LInux Gentoo (install stage3 from minimal CD) and saw some interesting things to me:

GNU/Linux Gentoo has "emerge" tools (** analog control system in FreeBSD Ports).

```
# emerge --depclen 
# revdep-rebuild
```
- remove unused dependencies (revdep-rebuild - restore links, etc.). That is, for example, I installed Opera browser. Oprea has established a number of dependencies. When I delete the Opera, depending remain in the system - they are not needed. 
This command finds and removes it. 
>> >> >> Is there something similar in FreeBSD? << << <<
(I'm not so long ago, in UNIX, Gentoo focuses on these teams, but on FreeBSD I may have just not found it.)


```
# emerge --update --deep --newuse world
```
this will update the system completely. 
The --deep flag allows you to update not only the installed programs and their dependencies, and, as I understand, Gentoo too.

It is clear then that FreeBSD (as opposed to Gentoo) versions: FreeBSD 4.x, 6.x 7.x,8.x  etc. Because I think this flag is not quite appropriate in this OS FreeBSD.

But interest is the flag --newuse. Gentoo has a file /etc/make.conf (Yes, FreeBSD also has it. ).
In Gentoo, there is a key USE in /etc/make.conf.

It allows you to specify the components that I want to use, and those I do not want to use.

For a short time in UNIX, I became a fan of OpenBox GUI, and vehemently dislike KDE. On my laptop I have Core i5 processor with support for MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1. Correspondingly, all I can indicate here:

```
...
USE="mmx sse sse2 sse3 ssse3 sse4_1 gtk gtk2 -kde -qt -qt3 .... "
```

I know that FreeBSD is all you can celebrate during software installation. But I'm lazy and often use: 

```
#!/bin/bash
export BATCH=yes 
cd /usr/ports/<PORT/NAME>
make && make install clean
```

>> >> >> What to do?  Is that something like that? << << <<

Yes, under Gentoo still have the driver for my WiFi, nVidia works better, etc. Installing FreeBSD easier. While I, a man with a small (very small) experience in UNIX only needed only a week to order that would install Gentoo, you configure the kernel, and put it in a state of alert: OpenBox + Titn2 + Gmrun + Cromium + Geany + Valgrind + ... etc. But that's another story.


Questions (try to answer at least for some).
--------------------------------------------
The result of my questions:
1. (is it possible?) How after uninstalling the program, delete unnecessary dependencies?
2. (is it possible?) How do I add additional parameters such as: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 whatever program can use them?
3. (is it possible?) Are there any tools like "make menuconfig" or "make nconfig" (used to configure the Linux kernel) in FreeBSD?
4. (is it possible?) Is it possible to specify a global USE flags? Or some one concept?
5. Why do you use FreeBSD instead of Linux? (just your opinion, for me it is important, example: - This is how life is, or - I do not like penguins, etc.)


----------



## SirDice (Nov 3, 2011)

doorways said:
			
		

> The result of my questions:
> 1. (is it possible?) How after uninstalling the program, delete unnecessary dependencies?


ports-mgmt/pkg_cutleaves



> 2. (is it possible?) How do I add additional parameters such as: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 whatever program can use them?


Possible, yes. But you are highly advised to leave them alone. They will be used automatically when applicable.



> 3. (is it possible?) Are there any tools like "make menuconfig" or "make nconfig" (used to configure the Linux kernel) in FreeBSD?


No. 



> 4. (is it possible?) Is it possible to specify a global USE flags? Or some one concept?


See answer #2



> 5. Why do you use FreeBSD instead of Linux? (just your opinion, for me it is important, example: - This is how life is, or - I do not like penguins, etc.)


Linux is a disorganized mess.


----------



## valsorym (Nov 3, 2011)

Thank you SirDice .



> Originally Posted by *SirDice*.
> 
> 
> > 4. (is it possible?) Is it possible to specify a global USE flags? Or some one concept?
> ...



may you tell me, as to do so:
By installing a program from the ports, showing a window for selecting installation options. Can I not choose these flags manually, and set them in the file, for example

```
$ cat opera-install-example
```


```
#!/bin/sh

# Choose port:
cd /usr/ports/www/opera

# Options:
- use it
- it is not used
- it is also used

# Install:
make && make install clean

exit 0
```

For if I use: export BATCH=yes - the default settings, but it is not always good.
I would like to automate the process of installing software with predefined settings. Start the installation,and go to bed.


----------



## ondra_knezour (Nov 3, 2011)

1. pkg-orphan or pkg_cutleaves for example.
2. CFLAGS, search forum for args why is better to not mess with them.
3. Configuring the FreeBSD Kernel and wblocks Simplifying...
4. /etc/make.conf, reread point 2 again.
5. Better documentation and I personally prefer system, which doesn't change names of utilities more frequently than implementing bugs into them which is still more frequent than changing of day/night. Check ifconfig vs. ip, ifconfig, iw, wi, iwpriv, iwspy, bla bla regarding both doc quality and history. Also three by name but not by function equal versions of fdisk in last *stable* Debian when building system with their (defunct, but included in *stable* system) scripts in chroot is notable example.


----------



## ondra_knezour (Nov 3, 2011)

doorways said:
			
		

> By installing a program from the ports, showing a window for selecting installation options. Can I not choose these flags manually, and set them in the file[...]



You can do
`# cd /port/dir && make config-recursive` or use tool like portmaster, which will do it for you before installation. In fact those options are stored somewhere under /var/db (can't remember if pkg or ports now).

Manual page for ports() may be interesting reading for you, all those things and many more is described there. As I stated in previous post, FreeBSD is very well documented.


----------



## valsorym (Nov 3, 2011)

Thank you ondra_knezour.



> Originally Posted by *ondra_knezour*.
> As I stated in previous post, FreeBSD is very well documented.


- Yes, this is so. But my English is very bad. :stud :r


----------



## SirDice (Nov 3, 2011)

doorways said:
			
		

> By installing a program from the ports, showing a window for selecting installation options. Can I not choose these flags manually, and set them in the file,


Ah, I thought you meant compiler options, it's best not to mess with those.

You're talking about OPTIONS. Most of them can be turned on or off using WITH_* or WITHOUT_* variables. You can even put them into /etc/make.conf so you don't have to enter them everytime.

For example:

```
# cd /usr/ports/editors/vim
# make -DWITHOUT_X11 install clean
```

Or put it in /etc/make.conf

```
.if ${.CURDIR:M*/editors/vim}
WITHOUT_X11=
.endif
```

The .if/.endif will make sure the option is only turned on for editors/vim.


----------



## olav (Nov 3, 2011)

I usually upgrade most of my servers to use the GCC 4.5+ compiler and in /etc/make.conf I add this flag for my athlon/phenom2 cpus:

```
CPUTYPE=amdfam10
```

Information about cpu types to compile for with GCC can be found here http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/i386-and-x86_002d64-Options.html


----------



## valsorym (Nov 3, 2011)

_For: SirDice_
Yes, that is what me need. Thank you. I will learn.

A compiler parameter I write how:

```
CFLAGS = "-02 -pipe -march=pentium3"
```

True "-march" I asked casually, still do not know what to ask for my CPU: Intel (R) Core i5 CPU M450@2.40GHz (kern. 4).


----------



## valsorym (Nov 3, 2011)

> Originally Posted by *olav*.
> Information about cpu types to compile for with GCC can be found here http://gcc.gnu.org/onlinedocs/gcc-4....4-Options.html


Thank you too,  It interesting Link.
Interesting behavior of developers gcc. they identified:

```
...
- prescott
- nocona
- core2
- corei7
- corei7-avx
...
```
forgetting about corei5. (( . will have to specify both "native".

```
CFLAGS="-02 -pipe -march=native"
CPUTYPE="native"
```


----------



## valsorym (Nov 3, 2011)

Another issue here though.
I understand SYSINSTALL simply copies the binary files to your computer. Because of what the system is installed in only 5 minutes.
And if I can download the source code and recompile the FreeBSD under his iron with uchetm optimization: CFLAGS = "-02-pipe-march = native"?

Can I do it right with FreeBSD or I must boot from the LiveCD (for example Frenzy), mount the root directory and make a compilation?

Should I do this? (why not?)
How would you do it? - Theory, a few words!


----------



## wblock@ (Nov 3, 2011)

If you set CFLAGS in /etc/make.conf, it overrides custom CFLAGS settings some ports may want to use, making them slower.  Setting CFLAGS for the OS has little benefit and lots of drawbacks.

Setting CPUTYPE should do no harm (although use ?=).


----------



## phoenix (Nov 3, 2011)

Search the forums for *CFLAGS* and *COPTFLAGS* and read the many long threads about *why you should not mess with them!*   Just ... don't.  Forget about all the Gentoo "uber-optimisation frenzy" crap.  This is FreeBSD, not Gentoo.


----------



## valsorym (Nov 3, 2011)

Okay, do not yell at me.  Thank you.


----------



## jnbek (Nov 3, 2011)

FreeBSD requires very little tweeking with things such as USE flags etc. The ports that have tweekable options will present a very easy to use dialog for you to select the available configuration options. Gentoo, has evolved into what I call USE hell, much like the rpm hell of days past. Enter the wrong USE flag and you end up with 15GBs of software compiling you never wanted, or even worse an unusable system. As already mentioned messing with the CFLAGS, etc is possible, but never a recommended thing, ever. As for kernel configuration, the KERNCONF files found in /usr/src/sys/{$arch}/conf are very easy to follow and adding removing options and devices is very easy and well documented within the file itself. Gentoo started out, in a way, to bring everything awesome about FreeBSD to the Linux kernel, and for a time, was very successful in this venture, but once they moved away from the ports way of doing things and turned portage into a full blown package manager, requiring multiple config files and of course, USE flag hell... it's just a convoluted mess that even for a seasoned nerd like myself, just isn't worth the hassle. FreeBSD on the other hand, has never once ventured from it's original design and one can feel at home in FreeBSD 4.4 just the same as FreeBSD-CURRENT when installing, configuring and adding programs.


----------



## fluca1978 (Nov 3, 2011)

doorways said:
			
		

> 5. Why do you use FreeBSD instead of Linux? (just your opinion, for me it is important, example: - This is how life is, or - I do not like penguins, etc.)



FreeBSD is a stable, clean and powerful system to use. Not only it is stable in term of live-running, but also in the maintenance tools and programs. Moreover, the system is very well documented, you will find man pages with a level of detail that cannot find under any linux. Moreover, FreeBSD is not held by any company or by any single developer, and this in the long run is a key point (at least for me).


----------



## vermaden (Nov 3, 2011)

doorways said:
			
		

> GNU/Linux Gentoo has "emerge" tools (** analog control system in FreeBSD Ports).
> 
> ```
> # emerge --depclen
> ...


There are LOTS of tools for packages and Ports management under* ports-mgmt *category: http://freshports.org/ports-mgmt/

But *pkg_cutleaves*, *pkg_rmleaves* and *portmaster -s* are things You are looking for.



```
# emerge --update --deep --newuse world
```
this will update the system completely. 
The --deep flag allows you to update not only the installed programs and their dependencies, and, as I understand, Gentoo too.[/QUOTE]

In Linux world, everything is treated the same way, for example, kernel is another package, same for glibc and so, in FreeBSD world, You have a _'base system'_, it contains kernel, userland, libc and various other software (bind/sendmail/...) that has nothing to do with packages in FreeBSD world, and there are packages ... and ports, packages are nothing more then build ports, so no matter if You add a packages or compile a port, it becomes 'the same thing'.

About the base system, You may update the 'base system' without touching the packages, or update all packages without touching the base system.

Also check that one about keeping FreeBSD and its packages up to date: http://forums.freebsd.org/showthread.php?t=26140



> But interest is the flag --newuse. Gentoo has a file /etc/make.conf (Yes, FreeBSD also has it. ).
> In Gentoo, there is a key USE in /etc/make.conf.
> 
> It allows you to specify the components that I want to use, and those I do not want to use.



In FreeBSD world there are WITH_X and WITHOUT_X flags that can be used in the make.conf, for example, casual WITHOUT_X11=yes on servers.




> For a short time in UNIX, I became a fan of OpenBox GUI, and vehemently dislike KDE. On my laptop I have Core i5 processor with support for MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1. Correspondingly, all I can indicate here:
> 
> ```
> ...
> ...



Compiling all the things from scratch is definitely overrated, I used to do that because I came from Gentoo to FreeBSD, but now compiling my time is the last thing I would want to do, I use only binary packages.

About openbox, it runs very well on FreeBSD, I also use it: http://browse.deviantart.com/?qh=&section=&global=1&q=openbox+by:vermaden




> I know that FreeBSD is all you can celebrate during software installation. But I'm lazy and often use:
> 
> ```
> #!/bin/bash
> ...



#!/bin/bash M-- this will not work on FreeBSD, bucause bash under FreeBSD is under /usr/local/bin/bash ...

Generally, anything that is from base system: /bin /usr/bin /sbin /usr/sbin and all installed packages are under /usr/local/bin and /usr/local/sbin, so is the packages configuration, under /usr/local/etc instead of /etc which is used only for base system.



> Yes, under Gentoo still have the driver for my WiFi


Which card you need to support?



> nVidia works better


nVidia also provides binary drivers for FreeBSD, what is better on Gentoo?



> you configure the kernel


What configuration You mean?



> OpenBox + Titn2 + Gmrun + Cromium + Geany + Valgrind + ...


# pkg_add -r openbox tint gmrun cromium geany valgrind ...  



> 1. (is it possible?) How after uninstalling the program, delete unnecessary dependencies?


Yes, mentioned earlier.

2. (is it possible?) How do I add additional parameters such as: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 whatever program can use them?
*CFLAGS/CXXFLAGS/COPTFLAGS* in /etc/make.conf 



> 3. (is it possible?) Are there any tools like "make menuconfig" or "make nconfig" (used to configure the Linux kernel) in FreeBSD?


Kernel config for FreeBSD kernel can (and custom ones often are) as samll as that one: http://strony.toya.net.pl/~vermaden/text/SMP-LITE

... so its useless to create aplication for editing such a small file, use *vi* or add *vim* from packages.

Kernel config is not so fscked up as on Linux.



> 4. (is it possible?) Is it possible to specify a global USE flags? Or some one concept?


WITH_X=yes and WITHOUT_X=yes in the make.conf, use src.conf for the base system.

Also check these: man make.conf man src.conf man build man tuning



> 5. Why do you use FreeBSD instead of Linux? (just your opinion, for me it is important, example: - This is how life is, or - I do not like penguins, etc.)



Its simple, logical, well designed, ZERO problems with sound because of great multichannel OSS, stable as rock, stable features and development, very logical and properly think-thought, great community, everything is really so simple and the way You solve some problem does not change with every new release, it just works, its just great and very underrated OS while Linux has all the hype without people really understanding how dirty Linux is.


----------



## olav (Nov 3, 2011)

wblock@ said:
			
		

> Setting CPUTYPE should do no harm (although use ?=).



That have something todo with buildkernel/buildworld right?


----------



## Sylhouette (Nov 3, 2011)

> 5. Why do you use FreeBSD instead of Linux? (just your opinion, for me it is important, example: - This is how life is, or - I do not like penguins, etc.)



I used gentoo, suse, red hat and debian before i found out about FreeBSD.

With gentoo, suse, red hat or debian there was always a but, atleast in my feeling.

Debian is very stable, but it used for my taste software that was to old.
Red Hat, the words _dependency hell_ covers that.
Suse, Yast, it was horrible.
gentoo, nice system, but when you want to do more, then flag x does not work with program y, and i was to my taste spending way to much time figuring out all those build knobs.
Also rebuilding a kernel was hell sometimes, you deselect one option, and could not build the kernel because something else dependend on that.
I do not use Linux seriously for 3 or even more years now, and a lot has changed for the better i believe, so these statements above proberbly do not apply anymore.
I have it on my laptop (ubuntu) just for fun.

Then i came across FreeBSD, it has a clean base, clean ports system, and the feel was solid.

A friend of my gave me the CD of 4.3 and said install it and get amazed.
Well i was amazed right from the start.
Slices?, No gui to install! and so on. 
The first time i did install it, it was no succes.
But after reading the handbook things got clear, and i started using FreeBSD more and more
that was in the 4.x days.

So when i was done with all these linux distributions, i promised myself to stick with FreeBSD and told myself if it works then that is great, if it does not work, find a replacement for that one software package.
And till today everything worked for me on FreeBSD. 
Samba as PDC or member server, mailserver, webserver, mailrelay servers, database server and proxy server all without problems, except SoGo for now.!
On the desktop gnome works ok for me also.
The ports system has it quirks sometimes, and the feel of FreeBSD is not as solid as it used to be in *my* experience, but all i want to do i still can do with FreeBSD.
It has never let me down.

Now that we need more and more storage, and FreeBSD is ironing out ZFS to become more and more stable, i believe FreeBSD has a bright future.
Also the multipath patches that is worked on, make FreeBSD a real candidate for a SAN/NAS solution in my believe.

But the most important thing is your own feel about things.
If you feel yourself much more comfortable using gentoo, then use gentoo.
Nothing wrong with that, we will see you back in about 2 or 3 years :e , without kidding arround, use which is more comfortable for you.
Do not get irritated because you want to use A and you know you get it working on B without hassle.

regards
Johan


----------



## ikreos (Nov 4, 2011)

doorways said:
			
		

> 5. Why do you use FreeBSD instead of Linux? (just your opinion, for me it is important, example: - This is how life is, or - I do not like penguins, etc.)



Well for me I got into computers back when Windows 3.1 was all the rage. Then throughout the years when I was using Windows ME, I got frustrated endlessly with the bleeding BSOD and thought "Is there anything besides DOS and Windows?".

So I did some research and found Linux. I tried it and liked it. I kept searching for more Operating Systems to try out and found many more. I came across FreeBSD back during the 4.x days and found it "similar" to the Linux I was using so I decided to try it, but It didn't support all my hardware so I stuck with Linux.

Eventually sometime around FreeBSD 8.x release I grew very tired of the chaotic mess that is Linux, watching them go in a direction I didn't care for while understanding that GNU wasn't as great as they claimed to be and came back to try FreeBSD. With a little hardware replacing and learning the system I fell in love with the coherency of it.

A full operating system, all configuration is in text files more or less all in one place (not the unholy mess that is XML or something else). A dirt simple init system. 3rd party software is installed where it belongs in /usr/local. Two filesystems, not 20+. Subsystems aren't changed to something completely different on a bi-yearly basis breaking everything (it's one thing to experiment but geez keep it an experiment til it's ready). A standard shell interpreter. The system is significantly easier to understand how to build, the easy to use ports/package system, and most of all the BSD License. Some may say it's a little too liberal but hey, If I was using a proprietary system and found out they used some code from *BSD I would feel much better about paying for it.

In retrospect I wish I would have tried harder to get FreeBSD 4.1 to work on my system. Once I got FreeBSD 8.0 to work and learned it's in's and out's I was kicking myself in the ass for not sticking with it back then. I had to re-learn a lot of stuff I _thought_ knew after being misguided using GNU software (GNU portability = different Linux distributions, GNU standards = GNU standards). I'm not saying Linux/GNU is bad, it's great and I used it for years. However it's getting a little ridiculous nowadays. Just my opinion. Oh and I still use Windows too but only for games, nothing serious.

/rant


----------



## wblock@ (Nov 4, 2011)

olav said:
			
		

> That have something todo with buildkernel/buildworld right?



Yes.  When set, watch a buildworld or buildkernel and there will be -march= settings that come from CPUTYPE.


----------



## valsorym (Nov 4, 2011)

Thank you all,



> Originally Posted by *vermaden*.
> 
> 
> > I know that FreeBSD is all you can celebrate during software installation. But I'm lazy and often use:
> ...



Yes, it is my bad. I write #!/bin/sh. (Sorry for the misinformation.)



> Originally Posted by *vermaden*.
> 
> 
> > Yes, under Gentoo still have the driver for my WiFi
> ...


 
This WiFi carats on a laptop Dell Vostro 3500 marks Broadcom. This is my position on this issue. (but since I did not try to fix it).



> Originally Posted by *vermaden*.
> nVidia also provides binary drivers for FreeBSD, what is better on Gentoo?



Under FreeBSD drawing graphical elements had defects, in Gentoo I did not see them. (probably badly I figured out the settings in FreeBSD)

Thank you "vermaden" for your help.
Thank you "Sylhouette" and "ikreos" and "jnbek" for a good response to the 5th question. The opinion of more experienced people for me are very important.

After the study (which knowing the whole night), read many articles (of course, and your recommendations), I decided to stay in FreeBSD.

As a true test said "Sylhouette"


> Originally Posted by *Sylhouette*.
> If you feel yourself much more comfortable using gentoo, then use gentoo.



I need to use something that gives a feeling of comfort ..
I initially liked FreeBSD, and Gentoo installation I performed under the pressure of many friends (fans of Linux). Now I think with my head. In addition, the FreeBSD community more friendly to people like me (novice) than community  Linux.

Thank you all!

I need to read, read, read, and teach English and to read, read, read and read Handbook.


----------



## Sylhouette (Nov 4, 2011)

> I need to read, read, read, and teach English and to read, read, read and read Handbook.


Do not forget the most important thing...
Have fun doing it.!
Have fun exploring the system, have fun reading and learning.
And be prepared to hit some bumps on the road..

Well have fun
regards
Johan


----------



## Crivens (Nov 4, 2011)

doorways said:
			
		

> ...forgetting about corei5. (( . will have to specify both "native".
> 
> ```
> CFLAGS="-02 -pipe -march=native"
> ...


Ã„hm, that sounds like a good idea, sure, untill it bites you in the behind.
Some ports use an older gcc as a build compiler and that one can barf on that -march because it is too new an option. I forgot which port it is that caused this, but it bit a friend of me, who is using gentoo, some weeks later - so it seems to be more than just a ports-issue for FreeBSD.

But are there any benchmarks to show that setting -march _*does *_do any measurable improvements?


----------



## valsorym (Nov 4, 2011)

> Originally Posted by *Crivens*.
> But are there any benchmarks to show that setting -march does do any measurable improvements?



I can not say for sure. Sorry I still do not understand a lot (I like a little child who is learning to walk).
But I think if these parameters are created by developers - so, they have a purpose!? If they are supported by the system - so, they make sense?!

Thank you for opened my eyes to the possible problems of using CFLAGS!



> Originally Posted by *Sylhouette*.
> Do not forget the most important thing...
> Have fun doing it.!



Oh yeah, I'm full of optimism! I get a lot of fun  that I left the "windows sect"! ^)


----------



## Sylhouette (Nov 5, 2011)

If I weere you I would forget about 
	
	



```
CFLAGS="-02 -pipe -march=native"
```
 If I recall correctly, -O2 and -pipe are default, so you do not win anything with it. The only thing I use is CPUTYPE?=, this will make the code more useable for your specific CPU. But if it really helps, I really do not know.

I would leave them alone, and start exploring the system, when you feel more at home with the system, you can change buildflags.

regards
Johan


----------



## valsorym (Nov 5, 2011)

Thank you! This is useful information!


----------



## xibo (Nov 6, 2011)

Crivens said:
			
		

> Some ports use an older gcc as a build compiler and that one can barf on that -march because it is too new an option. I forgot which port it is that caused this, but it bit a friend of me, who is using gentoo, some weeks later - so it seems to be more than just a ports-issue for FreeBSD.


Feel free to remember your friend that he needs to install a historic version of gcc to build OpenOffice on gentoo (or at least he had to in 200x), too, and that historic version is even older then FreeBSD world's gcc.



			
				Crivens said:
			
		

> But are there any benchmarks to show that setting -march _*does *_do any measurable improvements?


You'll be surprised. Thanks to bugs in the optimization layers, most of those measurable improvements would show you not specifying march will generate faster non-vector code (99% of your programs, that is) then when specifying it.



			
				doorways said:
			
		

> forgetting about corei5. (( . will have to specify both "native".


corei3, corei5 and corei7 all use the same instruction set, therefore there's only one compliler trigger for them. It's i7 because that one hit the markets first.

On the OP:
1. I use portmaster
2.1. CFLAGS, improvements not worth bothering
2.2. CPUTYPE, improvements not worth bothering either, unless you're building multimedia applications on an "established" CPU (new CPUs get buggy optimizations)
3. As most people don't need to modify it, or only do trival modifications (e.g. cp GENERIC MYCONFIG && echo "option ALTQ" >> MYCONFIG), so there's not much effort to do this
4. /etc/make.conf
5.1 Ctrl+T is awesome 
5.2 FreeBSD-STABLE is stable, while linux' official dot-zero releases are often more broken then FreeBSD HEAD
5.3 ports dependency setup is done in a few minutes per month, portage would easily keep me for half an hour every week
5.4 FFS and ZFS are both better then extfs
5.5 FreeBSD has a fully working NFS implementation, BIND, Telnet, SSH, ... and other useful networking goodies in base
5.6 Non-networking goodies in base
5.7 I like the license
5.8 GNU lacks [url="http://www.freebsd.org/cgi/man.cgi?query=style]style[/url]


----------



## valsorym (Nov 6, 2011)

Thank you!


----------



## Crivens (Nov 7, 2011)

xibo said:
			
		

> Feel free to remember your friend that he needs to install a historic version of gcc to build OpenOffice on gentoo (or at least he had to in 200x), too, and that historic version is even older then FreeBSD world's gcc.


No need for that, he learned that already the hard way. At least, the port will get and set up said ancient gcc (clay-tablet man page and all), but on gentoo I have my doubts if it is doing the same or if portage simply tries to run the current system gcc.


			
				xibo said:
			
		

> You'll be surprised. Thanks to bugs in the optimization layers, most of those measurable improvements would show you not specifying march will generate faster non-vector code (99% of your programs, that is) then when specifying it.


Bugs in the optimizer are not only common and annoying, but they also are first rate heisenbugs. Five percent in performance improvement by "wand waving" may well produce bad code in >5% of cases. Wasn't there some trouble with SPEC when it was found that some benchmarks ran as fast as recorded with the vendow flags but produced bad output?

What usually gives good performance is keeping the cache loaded. The access speed difference between CPU and main memory today is about the same as if you would run the old XT directly from it's HD. So unrolling loops ad-inf will increase code size and may well blow up the performance.


----------



## valsorym (Nov 10, 2011)

My choice of FreeBSD - Installation of a more pleasant and logical.
While not as Gentoo installation and complicated, but requires extra action.


----------

