My favorites | Sign in
Project Logo
                
New issue | Search
for
| Advanced search | Search tips
Issue 17: build fails on OSX 10.5.2
2 people starred this issue and may be notified of changes. Back to list
Status:  Verified
Owner:  christiano.fh
Closed:  Apr 2008
Type-Defect
Priority-High


Sign in to add a comment
 
Reported by rasa.silva, Mar 03, 2008
What steps will reproduce the problem?
1. Try to compile msn-pecan on OSX 10.5.2
2.
3.

What is the expected output? What do you see instead?
See the full build log in the attached file.

What version of the product are you using? On what operating system?
Trying to compile version 0.0.10 on OSX 10.5.2

Please provide any additional information below.

 
msn-pecan-build.txt
50.2 KB Download
Comment 1 by felipe.contreras, Mar 03, 2008
I just committed a change that might fix this issue. Please try again from the git
repository.

Good to hear someone trying to build for OSX :)
Status: Accepted
Owner: felipe.contreras
Comment 2 by rasa.silva, Mar 03, 2008
Hi,

Nice to know you care ;)

Apparently the commit fixed the issue...
However I'm having a new one:

gcc `pkg-config --libs purple` `pkg-config --libs gobject-2.0` directconn.o error.o
msn.o nexus.o notification.o object.o page.o session.o state.o switchboard.o sync.o
pecan_log.o pecan_util.o cmd/cmdproc.o cmd/command.o cmd/history.o cmd/msg.o
cmd/table.o cmd/transaction.o ab/pecan_group.o ab/pecan_contact.o
ab/pecan_contactlist.o io/pecan_stream.o io/pecan_node.o io/pecan_cmd_server.o
io/pecan_http_server.o cvr/slp.o cvr/slpcall.o cvr/slplink.o cvr/slpmsg.o
cvr/slpsession.o fix_purple.o -shared -o libmsn-pecan.so
Undefined symbols:
  "_main", referenced from:
      start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [libmsn-pecan.so] Error 1


One bit of info: I'm using macports for most of the libs so I may be missing something...

Which reminds me that it would be useful to put the build dependencies in the Wiki.
From what I can understand it's Glib and Pidgin/libpurple.
Comment 3 by felipe.contreras, Mar 20, 2008
Can you try to build the official MSN plugin and paste the commands executed by make?
Labels: -Priority-Medium Priority-High
Comment 4 by rasa.silva, Mar 21, 2008
Here it is.
official_msn_build.log
14.6 KB Download
Comment 5 by felipe.contreras, Apr 01, 2008
I would like to see the output of the libtool command without the silent option. From
your log this is the last command executed:

libtool --silent --tag=CC --mode=link gcc -g -g -O2 -module -avoid-version -o
libmsn.la -rpath /usr/local/lib/purple-2 cmdproc.lo command.lo contact.lo dialog.lo
error.lo group.lo history.lo httpconn.lo msg.lo msn.lo nexus.lo notification.lo
object.lo oim.lo page.lo servconn.lo session.lo slp.lo slpcall.lo slplink.lo
slpmsg.lo slpsession.lo soap.lo soap2.lo state.lo switchboard.lo sync.lo table.lo
transaction.lo user.lo userlist.lo msnutils.lo -L/opt/local/lib -lgobject-2.0
-lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl -liconv -lutil -lpthread -lresolv 
-framework IOKit -framework CoreFoundation

Just remove the --silent.
Comment 6 by christianohaesbaert, Apr 20, 2008
I've just found the problem, mac os x does NOT support -shared option in gcc4, I don't know the solution 
yet, but I'm working on it, here is the output:

cc `pkg-config --libs purple` `pkg-config --libs gobject-2.0` directconn.o error.o msn.o nexus.o 
notification.o object.o page.o session.o state.o switchboard.o sync.o pecan_log.o pecan_util.o 
cmd/cmdproc.o cmd/command.o cmd/history.o cmd/msg.o cmd/table.o cmd/transaction.o 
ab/pecan_group.o ab/pecan_contact.o ab/pecan_contactlist.o io/pecan_stream.o io/pecan_node.o 
io/pecan_cmd_server.o io/pecan_http_server.o cvr/slp.o cvr/slpcall.o cvr/slplink.o cvr/slpmsg.o 
cvr/slpsession.o fix_purple.o -shared -o libmsn-pecan.so

This is the man file of gcc in mac os x leopard
  -shared
           Produce a shared object which can then be linked with other objects to
           form an executable.  Not all systems support this option.  For
           predictable results, you must also specify the same set of options that
           were used to generate code (-fpic, -fPIC, or model suboptions) when you
           specify this option.[1]

           This option is not supported on Mac OS X.




Comment 7 by christiano.fh, Apr 20, 2008
***FIXED***
The problem is as I suspected, if you change the libmsn-pecan.so section to the following, you will be happy,
I'm modifying the Makefile to detect darwin, and issue the correct flag, but until the next release, change it by 
hand, just want to state that this is my first contribution to the project, I'm really happy :).

libmsn-pecan.so: $(objects)
	$(CC) -dynamiclib $(PURPLE_LIBS) $(GOBJECT_LIBS) $+ -o $@

Comment 8 by kooyman, Apr 21, 2008
I can not confirm the the fix. I tried to compile it under 10.5.2 xcode 3 , pidgin
2.4.1. I added my changed Makefile and the output of make. I hope this info is usefull.
buildfile-msn-pecan.txt
38.4 KB Download
Makefile
2.1 KB Download
Comment 10 by christiano.fh, Apr 22, 2008
I'm in work now, so I can't do much, but I've made a small research on the matter, 
I'm using mac os 10.5.2, cant check my gcc version now, but this bug appears in 
other projects as well, seems like is something to do with inline functions, here is 
the thread http://lists.apple.com/archives/unix-porting/2007/Oct/msg00038.html 

It compiled fine for me after my fix, I'm using pidgin 2.3.1 (macports one) and mac 
os x 10.5.2 with the latest update.

So I believe the bug is either between pidgin 2.3.1-2.4.1 or in older versions of 
gcc.

kooyman, can you please make sure yo have the lates apple updates, and make a post 
with your gcc version ?

I'll be looking further into this matter tonight.

Comment 11 by christiano.fh, Apr 22, 2008
Well into further research ( I should be working right now ) I've  discovered that 
this is a major bug in inline functions in mac os x 10.5.2.

There is a workaround(inline patch) in the glib ports in macports, don't know if you 
are using macports kooyman, but the problem is definately in glib and friends, I am 
almost sure that if you upgrade your glib in macports everything should work fine, 
If you have the time, please issue a major upgrade to your macports, also because if 
not, you will see this problem in other builds as well.

I've installed macports few minutes before compiling msn-pecan, so I believe my glib 
has the inline patch and so I didn't get this error.

This thread of macports explains everything:
http://trac.macports.org/projects/macports/ticket/13006

Note that the resolution is "works for some", but I do believe that if the upgrade 
of macports does not solve the matter, a major reinstall of macports should do.


Comment 12 by felipe.contreras, Apr 22, 2008
Great job Christiano!

I was traveling but now I'm back. I will commit your patch and hopefully that will be
all that's needed for this issue.
Owner: christiano.fh
Comment 14 by felipe.contreras, Apr 28, 2008
Please try with the new repository, the commit is there.
git://github.com/felipec/msn-pecan.git
Status: Fixed
Comment 15 by felipe.contreras, Jul 08, 2008
(No comment was entered for this change.)
Status: Verified
Sign in to add a comment

Hosted by Google Code