Two pkgsrc work directory tips

Two tips for working with pkgsrc, derived in part from this mailing list post on users@ (follow the thread) and from my own experience.  If you put WRKOBJDIR=/usr/obj/pkgsrc into /usr/pkg/etc/mk.conf :

  1. You can clean up any leftover package building files by deleting the files in that directory and leave your pkgsrc files untouched.
  2. You can have a read-only /usr/pkgsrc, which means it can be shared over NFS (or SMB?) between multiple machines, DragonFly or otherwise.
Lazy Reading for 2011/12/04

Another week, another linkpile.

  • Here’s some old software.  I’ve got something older sitting on my shelf here, though.
  • A patch to DragonFly, taken from OpenBSD, submitted by Loganaden Velvindron and committed by Venkatesh Srinivas.  The patch isn’t that exciting, but it makes me feel cool to namedrop non-Americanized names.  If only I could pronounce them!
  • Speaking of which, there isn’t always a lot of comments on this Digest (which is good; a long series of comments on the Internet tend to be the result of trolling or inanity.), but the recent strlen() story led to some juicy details.
  • Man, I wish this NoteSlate device existed.  There’s the BoogieBoard, but it’s not quite the same.

I’ll make up for my relatively low number of links by asking a question:   Where do you go for your end of year gift giving?  Where do you wish people would go to buy you gifts?  I’m looking for suggestions for a gift guide.

Your unrelated comics link of the week: Gun Show.  This one and that one are my favorites.

Parallelized buildworld now possible

Buildworlds are now much faster, because they can run themselves in parallel.  Invoke it using the -j option to make.  Matthew Dillon saw a 25% reduction in time when using ‘make -j 12 buildworld’ on a 4-core system.  You may need to manually update xinstall and mkdir:

        cd /usr/src/usr.bin/xinstall
        make clean; make obj; make all install
        cd /usr/src/bin/mkdir
        make clean; make obj; make all install

It’ll also use more memory than a non-parallel build, but heck, that’s cheap these days.

An unexpected way to do strlen()

The general rule of thumb is that if you have a function written in an interpreted language (Perl, Python, etc.), it’ll be faster in C.  If you need it faster than that, you go to assembly.  Prepare to have your world rocked: Venkatesh Srinivas found that strlen() in libc was actually slower written in assembly than in C.  His commit message has numbers to back that up.

Lazy Reading for 2011/11/27

Happy (post) Turkey Day for the U.S. readers!  A light link week this week.

  • Facebook is bad for the Internet.  ‘Gaslighting’ is a new term to me.  As that article points out, I can’t even put my posts to the Digest onto Facebook in any sort of automated way.  Facebook suggests that of course I’d love to retype them all by hand.  That’s not realistic.    Facebook doesn’t want any sort of useful external link to be visible to their customers.  Customers isn’t actually the right word; the customers are the advertisers.  What would be a better word for the users?  Crop?
  • the internet is above and beyond all else a resentment machine.”  It’s a very long essay that points out people are confusing brand identity with personal identity.  (via)
  • You know what would be good?  More conversations about games on BSD, cause it could use some attention.  Oh hey there you go.
  • A Dragonfly lamp (via Julian Gehtdichgarnichtsan)

Your unrelated link of the week: Animals Talking In All Caps.  It is what it says it is.

 

Video and USB fix

Matthew Dillon has written a contiguous memory mapper, which is designed to fix problems with video cards and USB drives that need a big chunk of memory to keep.  This can affect booting or later on, when disconnecting/reconnecting a USB drive.  If this still doesn’t fix the problem for you, try adjusting the sysctl ‘vm.dma_reserved’ to something bigger, like 64M.  It defaults to 16M.

(Normal mailarchive isn’t updating because of an ongoing upgrade to crater.dragonflybsd.org – sorry!)