Homebrew [DEV] probleme for compiling IOS 232 installer

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
Hello,

I want to compil my own version of IOS 236 Installer translated in french.

But i got this error:

Code:
c:/devkitpro/devkitppc/bin/../lib/gcc/powerpc-eabi/4.5.1/../../../../powerpc-eabi/bin/ld.exe: cannot open linker script file ../rvl.ld: No such file or directory
collect2: ld returned 1 exit status

The file rvl.ld is already in devkitPPC/powerpc-eabi/lib/

Here is my makefile:
#---------------------------------------------------------------------------------
# Clear the implicit built in rules
#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC")
endif

include $(DEVKITPPC)/wii_rules

#---------------------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
#---------------------------------------------------------------------------------
TARGET := boot
BUILD := build
SOURCES := source
DATA := data
INCLUDES := include

#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------

CFLAGS = -g -O2 -mrvl -Wall $(MACHDEP) $(INCLUDE)
ASFLAGS = $(MACHDEP) $(INCLUDE) -D_LANGUAGE_ASSEMBLY
CXXFLAGS = $(CFLAGS)

LDFLAGS = -g $(MACHDEP) -mrvl -Wl,-Map,$(notdir $@).map -T../rvl.ld

#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBS := -lfat -lwiiuse -lbte -lmad -lm -lmodplay -logc


#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRS :=

#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------

export OUTPUT := $(CURDIR)/$(TARGET)

export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
$(foreach dir,$(DATA),$(CURDIR)/$(dir))

export DEPSDIR := $(CURDIR)/$(BUILD)

#---------------------------------------------------------------------------------
# automatically build a list of object files for our project
#---------------------------------------------------------------------------------
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))

#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
export LD := $(CC)
else
export LD := $(CXX)
endif

export OFILES := $(addsuffix .o,$(BINFILES)) \
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
$(sFILES:.s=.o) $(SFILES:.S=.o)

#---------------------------------------------------------------------------------
# build a list of include paths
#---------------------------------------------------------------------------------
export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-I$(CURDIR)/$(BUILD) \
-I$(LIBOGC_INC)

#---------------------------------------------------------------------------------
# build a list of library paths
#---------------------------------------------------------------------------------
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
-L$(LIBOGC_LIB)

export OUTPUT := $(CURDIR)/$(TARGET)
.PHONY: $(BUILD) clean all

all: $(BUILD)

#---------------------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile

#---------------------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol

#---------------------------------------------------------------------------------
run:
wiiupload $(TARGET).dol


#---------------------------------------------------------------------------------
else

DEPENDS := $(OFILES:.o=.d)

#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
$(OUTPUT).dol: $(OUTPUT).elf
$(OUTPUT).elf: $(OFILES)

#---------------------------------------------------------------------------------
# This rule links in binary data
#---------------------------------------------------------------------------------
%.sys.o : %.sys
@echo $(notdir $
 

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
OK I solve my problèm ! I just copy rvl.ld in the root of my folder which contain the makefile !

But I've got another problèm:

Code:
console.o: In function `RGB8x2_TO_YCbYCr':
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: undefined reference to `PNGU_RGB8_TO_YCbYCr'
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: undefined reference to `PNGU_RGB8_TO_YCbYCr'
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: undefined reference to `PNGU_RGB8_TO_YCbYCr'
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: undefined reference to `PNGU_RGB8_TO_YCbYCr'
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: undefined reference to `PNGU_RGB8_TO_YCbYCr'
console.o:c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: more undefined references to `PNGU_RGB8_TO_YCbYCr' follow
iospatch.o: In function `disable_memory_protection':
c:/homebrew/IOS-236-INSTALLER-FR/source/iospatch.c:15: undefined reference to `read32'
c:/homebrew/IOS-236-INSTALLER-FR/source/iospatch.c:15: undefined reference to `write32'
 

giantpune

Well-Known Member
Member
Joined
Apr 10, 2009
Messages
2,860
Trophies
0
XP
213
Country
United States
just look at the errors.
undefined reference to `PNGU...'
that probably means you need the pngu library. get it, install it.
 

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
Thanks for answers!

the lib PNGU is already in the source folders !!!

the error of th makefile is linked to this line in console.c:
Code:
ÂÂÂÂreturn PNGU_RGB8_TO_YCbYCr(c1[0], c1[1], c1[2], c2[0], c2[1], c2[2]);

This error is linked with this line in pngu.h:

Code:
// Function to convert two RGB8 values to YCbYCr
PNGU_u32 PNGU_RGB8_TO_YCbYCr (PNGU_u8 r1, PNGU_u8 g1, PNGU_u8 b1, PNGU_u8 r2, PNGU_u8 g2, PNGU_u8 b2);

I have tried to writte this:
Code:
// Function to convert two RGB8 values to YCbYCr
void PNGU_u32 PNGU_RGB8_TO_YCbYCr (PNGU_u8 r1, PNGU_u8 g1, PNGU_u8 b1, PNGU_u8 r2, PNGU_u8 g2, PNGU_u8 b2);

But i have got an error.

I will try to writte this in console.c:
Code:
return PNGU_u32 PNGU_RGB8_TO_YCbYCr(c1[0], c1[1], c1[2], c2[0], c2[1], c2[2]);

EDIT: I have got this error:
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: error: expected expression before 'PNGU_u32'

LOL...
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
I just told you, you add -lpng in the LIBRARY FLAGS.. in the makefile I mean, see the LDFLAGS ? that's it.

I don't want to sound mean but if you are going to modify some existing program and (probably) release it to others, you should at least have basic understanding about coding and compilation, especially with something like an IOS installer which can potentially brick your Wii if modified incorrectly.

You shouldn't even had to copy the rvl.ld file, I don't know what you have been doing but it seems you didn't installed devkitPPC correctly.
 

WiiUBricker

News Police
Banned
Joined
Sep 19, 2009
Messages
7,827
Trophies
0
Location
Espresso
XP
7,485
Country
Argentina
Jacobeian said:
especially with something like an IOS installer which can potentially brick your Wii if modified incorrectly.
Lol, no
z7iod9xf.gif
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
I said "potentially", don't be nitpicking to show how smart you are. As soon as you are modifying the NAND, you can potentially brick your Wii if you do something wrong, like for example corrupting system menu IOS.
 

WiiUBricker

News Police
Banned
Joined
Sep 19, 2009
Messages
7,827
Trophies
0
Location
Espresso
XP
7,485
Country
Argentina
Again no. You even can delete a bunch of IOS and your Wii will still work. I really doubt, that a person with zero or litte coding and compiling knowledge can incidently modify the IOS236 Installer in that way, that it can harm the system menu IOS or any essential file.

IOS installers are damn safe
 

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
I just translate this homebrew, I'm brick-protected by bootmii-boot2 and priiloader!

I compile correctly others homebrews. Only this one give me problems !

I will modify my makefile. I haven't base in dev, but i want to learn.

Thanks all !
 

WiiUBricker

News Police
Banned
Joined
Sep 19, 2009
Messages
7,827
Trophies
0
Location
Espresso
XP
7,485
Country
Argentina
RiderFx3 said:
I just translate this homebrew, I'm brick-protected by bootmii-boot2 and priiloader!

I compile correctly others homebrews. Only this one give me problems !

I will modify my makefile. I haven't base in dev, but i want to learn.

Thanks all !
If you provide me your translation (eng --> french) I can try to compile it for you.
 

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
Thanks but i Want to do ti myself
wink.gif


I am going to add accents (like: é) and ajust the text to the console width.

Thanks !
biggrin.gif


EDIT: I modifyed my makefile:
Code:
#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBSÂÂÂÂ:=ÂÂÂÂ -libpng -lfat -lwiiuse -lbte -lmad -lm -lmodplay -logc

It's Okay but,

I have ONLY got this error now:
Code:
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c: In function 'RGB8x2_TO_YCbYCr':
c:/homebrew/IOS-236-INSTALLER-FR/source/console.c:105: error: expected expression before 'PNGU_u32'

On this line, in console.c:
Code:
return PNGU_u32 PNGU_RGB8_TO_YCbYCr(c1[0], c1[1], c1[2], c2[0], c2[1], c2[2]);

An Idea ?
 

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
I've got the same error with this part of makefile:
Code:
#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBSÂÂÂÂ:=ÂÂÂÂ -lpng -lfat -lwiiuse -lbte -lmad -lm -lmodplay -logc

and

Code:
#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBSÂÂÂÂ:=ÂÂÂÂ -lpngu -lfat -lwiiuse -lbte -lmad -lm -lmodplay -logc
 

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
OK the last makefile works fine, and I fix console.c:
Code:
return PNGU_RGB8_TO_YCbYCr(c1[0], c1[1], c1[2], c2[0], c2[1], c2[2]);

it's ok But I've got 2 other errors:
Code:
iospatch.o: In function `disable_memory_protection':
c:/homebrew/IOS-236-INSTALLER-FR/source/iospatch.c:15: undefined reference to `read32'
c:/homebrew/IOS-236-INSTALLER-FR/source/iospatch.c:15: undefined reference to `write32'

The correspondant line is in iospatch.c:
Code:
static void disable_memory_protection() {
ÂÂÂÂwrite32(MEM_PROT, read32(MEM_PROT) & 0x0000FFFF);
}
 

Jacobeian

Well-Known Member
Member
Joined
May 15, 2008
Messages
1,893
Trophies
0
XP
387
Country
Cuba
Undefined references means the function is not defined anywhere, it means the source code you are compiling is not complete and is missing some lib or .c .h files. Read32 and write32 functions could be anything, but you better fine where they are defined.

Edit: see the atd compiling thread below (what's up with french people suddently wanting to translate and recompile apps lol), these functions are apparently defined in libogc, you are probably missing some #include
 

RiderFx3

Well-Known Member
OP
Newcomer
Joined
Mar 8, 2009
Messages
59
Trophies
0
XP
155
Country
France
QUOTE said:
what's up with french people suddently wanting to translate and recompile apps lol
Imagine you are américan, and the best hackers are dutch, and dev in dutch. If you're not speaking dutch, you would like to translate your favorite apps so that it is more pleasant
wink.gif


thanks a lot for your helping.

I fix all my problem by reinstalling DevKitPro, and last libogc.
biggrin.gif
(Noobzor inside)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    AncientBoi @ AncientBoi: byes +1