Front page
Silflay Hraka?

Bigwig is a systems administrator at a public university
Hrairoo is the proprietor of a quality used bookstore
Kehaar works at a regional newspaper
Woundwort is a professor of counseling at a private university

The Hraka RSS feed

bigwig AT

Friends of Hraka
Daily Pundit
cut on the bias
Meryl Yourish
This Blog Is Full Of Crap
Winds of Change
A Small Victory
Silent Running
Dr. Weevil
Little Green Footballs
Fragments from Floyd
The Feces Flinging Monkey
Dean's World
Little Tiny Lies
The Redsugar Muse
Natalie Solent
From the Mrs.
The Anti-Idiotarian Rottweiler
On the Third Hand
Public Nuisance
Not a Fish
Electric Venom
Skippy, The Bush Kangaroo
Common Sense and Wonder
Neither Here Nor There
The Greatest Jeneration
Ipse Dixit
Blog On the Run
Redwood Dragon
Greeblie Blog
Have A Cuppa Tea
A Dog's Life
Iberian Notes
Midwest Conservative Journal
A Voyage to Arcturus
Trojan Horseshoes
In Context
The People's Republic of Seabrook
Country Store
Blog Critics
Chicago Boyz
Hippy Hill News
Kyle Still Free Press
The Devil's Excrement
The Fat Guy
War Liberal
Assume the Position
Balloon Juice
Iron Pen In A Velvet Glove
Freedom Lives
Where Worlds Collide
Knot by Numbers
How Appealing
South Knox Bubba
Heretical Ideas
The Kitchen Cabinet
Bo Cowgill
Raving Atheist
The Short Strange Trip
Shark Blog
Ron Bailey's Weblog
Cornfield Commentary
Northwest Notes
The Blog from the Core
The Talking Dog
WTF Is It Now??
Blue Streak
Smarter Harper's Index
nikita demosthenes
Bloviating Inanities
Sneakeasy's Joint
Ravenwood's Universe
The Eleven Day Empire
World Wide Rant
All American
The Rant
The Johnny Bacardi Show
The Head Heeb
Viking Pundit
Oscar Jr. Was Here
Just Some Poor Schmuck
Katy & Bruce Loebrich
But How's The Coffee?
Roscoe Ellis
Sasha Castel
Susskins Central Dispatch
Josh Heit
Aaron's Rantblog
As I was saying...
Blog O' Dob
Dr. Frank's Blogs Of War
Betsy's Page
A Knob for Brightness
Fresh Bilge
The Politburo Diktat
Drumwaster's rants
Curt's Page
The Razor
An Unsealed Room
The Legal Bean
Helloooo chapter two!
As I Was Saying...
SkeptiLog AGOG!
Tong family blog
Vox Beth
I was thinking
Judicious Asininity
This Woman's Work
Fragrant Lotus
Single Southern Guy
Jay Solo's Verbosity
Snooze Button Dreams
You Big Mouth, You!
From the Inside looking Out
Night of the Lepus
No Watermelons Allowed
From The Inside Looking Out
Lies, Damn Lies, and Statistics
Suburban Blight
The SmarterCop
Dog of Flanders
From Behind the Wall of Sleep
Beaker's Corner
Bad State of Gruntledness
Who Tends The Fires
Granny Rant
Elegance Against Ignorance
Say What?
Blown Fuse
Wait 'til Next Year
The Pryhills
The Whomping Willow
The National Debate
The Skeptician
Zach Everson
Geekward Ho
Life in New Orleans
Rotten Miracles
The Biomes Blog
See What You Share
Blog d’Elisson
Your Philosophy Sucks
Watauga Rambler
Socialized Medicine
Verging on Pertinence
Read My Lips
The Flannel Avenger
Butch Howard's WebLog
Castle Argghhh!
Andrew Hofer
Moron Abroad
White Pebble
Darn Floor
Pajama Pundits
Goddess Training 101
A & W
Medical Madhouse
Slowly Going Sane
The Oubliette
American Future
Right Side Redux
See The Donkey
Newbie Trucker
The Right Scale
Running Scared
Ramblings Journal
Focus On Reality
Wyatt's Torch

April 22, 2004

Odd Failures While Attempting to Compile PHP-4.3.6

Spent the last two days building things. Not with my hands--the birdhouse attempts of my youth were enough to convince me I had no carpentry skills whatsoever, but with the command line.

It can be about as frustrating as errant nails and split wood, though. I spent most of yesterday attempting to build php-4.3.6 on a development server. I'd built numerous earlier versions of php on the same box, so it should have been no trouble, but trouble it was.

Building php can be done with three commands; configure, make, and make install. Options are normally added to the configure command to make the resultant program a little more useful to the end user, but they're essentially window dressing. I'll add the configure statement I was trying to use at the end of the post, for those of you desperately interested in such things.

Like I said, I'd done this numerous times before on the server in question. There was no reason to think this time would be any different from the rest.

Except it was. The configure command would get to a certain step (creating ./config.status) and then hang, which was odd even for failed builds. Usually it's "make" that breaks, not configure.

Once this happened enough times, even with a completely vanilla ./configure command, I opened another session on the box to try and see what was going on. The config.status as far as I could tell was successfully created. The configure process had even moved on, to a file called conftest.s3.

But that was as far as it got. Over the next hour, the conftest.s3 file was created one minute, (by this process-- sed 1,180d; 270q conftest.subs) then removed the next (by this one-- rm -f conftest.s3).

The last entry in php's config log was "configure:92916: checking whether to build static libraries, " a singularly uninformative entry. There are other errors in the log above that entry,

configure:88841: gcc -o conftest -g -O2 -D_POSIX_PTHREAD_SEMANTICS conftest.c 1>&5

Undefined first referenced symbol in file

dlsym /var/tmp//cc2fdIXb.o (symbol belongs to implicit dependency /usr/lib/

dlopen /var/tmp//cc2fdIXb.o (symbol belongs to implicit dependency /usr/lib/

ld: fatal: Symbol referencing errors. No output written to conftest collect2: ld returned 1 exit status

but in my experience, errors severe enough to cause the configure process to fail break it immediately, not hang.

But it must mean something, because when I finally compiled php on another server that error didn't appear, though others did. I wondered if perhaps the /usr/lib/ do had been erased, but it was just where it should be.

After finding that the behaviour affected earlier versions of php that I know had been successfully compiled before, I moved my attempts to another server. I did this with great remorse, as before I could even think about compiling php on a new server I had to add a number of Solaris packages to it.

Parts of our security measures are to run as little as possible on most of our servers. The less there is running on a box, the less there is for a hacker to exploit. The downside is what I ran across when I decided to build php on a new machine--a lot of things have to be added to it before it's useful.

It wasn't as bad as it could have been. My initial attempts a couple of years ago to compile php had been such a clusterfuck that I'd thoroughly documented the process after I was finally done. I added the SUNWbzip SUNWapchr SUNWapchu SUNWzlib and SUNWarc packages to the new machine and was off.

Only to stop again. ./configure finally worked, which was nice, but now make broke, probably because I was still missing some critical packages.

Fortunately for me, none of the files were local to the machines i was using, existing instead in the Andrews File System, of which I have spoken before

You know the file system in your computer? Think of a really big one, so big that it is spread across tens or hundreds of computers(distributed). People and other computers can plug into this file system and in theory see everything on it (common name space), if they have permissions. Mostly they don't, but they can see parts of it. Every computer that plugs into it also has its own internal file system, but for all intents and purposes, a computer treats AFS as part of that internal file system.

So I can copy files to and from AFS into my web servers, or from one web server into AFS. It's especially convenient for moving files from one computer to another when you don't want to mount a drive or can't use FTP for some reason.

Since the php files existed in a space independent of the servers I was using to access them, I could access them from both at the same time. On a whim, after the config was successful on the second server, I went back to the original server and ran "make" from it.

It worked, as did "make install." I was done. I had no idea why I had been successful, but successful I was nonetheless. As I told the boss, "The machine I can make on I can't configure with, and the machine I can configure with I can't make on, but between them we have one useful server."

I then printed out the package lists on both to see which was missing what, but I haven't had time to compare them yet.

Here's my initial configure command;

./configure --with-apxs=/opt/local/apache-1.3.28/bin/apxs --prefix=/afs/isis/depts/atn/web/src/php-4.3.6 --enable-safe-mode --enable-discard-path --enable-dba --with-gdbm=/afs/isis/pkg/gdbm --enable-dbase -enable-dbx --enable-filepro -with-oracle=/afs/isis/pkg/oracle/client --with-oci8=/afs/isis/pkg/oracle-817/client --with-sybase=/afs/isis/pkg/sybase --enable-debug --enable-sigchild --enable-libgcc --with-zlib=/afs/isis/pkg/zlib --enable-bcmath --enable-calendar --enable-ctype --with-gettext=/afs/isis/pkg/gettext --with-kerberos=/afs/isis/pkg/krb4 --enable-mailparse --enable-mbstring --enable-mbstrc-enc-trans --with-readline=/afs/isis/pkg/readline --enable-shmop --enable-sockets --with-regex=system --enable-sysvsem --enable-memory-limit --enable-maintainer-mode --enable-magic-quotes --enable-wddx

Posted by Bigwig at April 22, 2004 10:12 AM | TrackBack
First time visitor to House Hraka? Wondering if everything we produce could possibly be as brilliant/stupid/evil/pedantic/insipid/inspired as the post you just read? Check out the Hraka Essentials, the (mostly) reader-selected guide to Hraka's best posts, and decide for yourself.
Post a comment Note: Comments with more than two dashes per line will be blocked as spam.

Remember personal info?